ページの先頭です

ページ内を移動するためのリンク
本文へ (c)

ここから本文です。

PowerStoreの電源ON/OFF自動化にチャレンジしてみた!

目次

はじめに

お久しぶりです!

ネットワンシステムズの川和です。

今回はちょっと短いですが、Dell EMC PowerStoreの電源ON/OFF自動化に取り組みましたので、その結果をご共有させていただこうと思います!

概要

そもそもDell EMC PowerStoreとは?

Dell Technologies社のミッドレンジ~ハイエンド向けのストレージ製品です。

オールフラッシュのNVMe対応のストレージで、高いパフォーマンスを発揮します!

今Dell Technologies社とネットワンがイチオシするホットなストレージ製品で、定期的なアップデートなどが目白押しです!

なんで電源ON/OFF自動化が必要なの?

現在、ネットワンシステムズは、SDGsの達成に向けて、いくつかの取り組みを進めております。

その中の1つが、脱炭素社会(カーボンニュートラル)の実現に向けた取り組みであり、その活動の一環として、消費電力の削減に力を入れています。

消費電力を削減するために、夜間や休日などの機器を使わないタイミングで、こまめに電源を落として電力を削減する必要がございます。

しかし、毎回手動で電源を落とすのは手間がかかるため、自動で電源を制御する仕組みが必要となりました。

自分としても、SDGsへの取り組みには非常に関心があり、少しでも貢献ができたらと思い、今回の電源ON/OFF自動化に取り組んだわけです!

弊社のSDGsへの取り組みについては、以下のサイトをご覧ください。

SDGsへの取組 | ネットワンシステムズ (netone.co.jp)

実際に自動化してみた

実際に自動化した際の手順や、注意点をご紹介します!

どうやって自動化したの?

今回、Dell EMC PowerStoreの電源ON/OFF自動化するにあたり、以下の環境を用意しました。

  • OS:CentOS7
  • Python 3.10.5

電源を落とす手順は単純で、仮想マシンからpythonスクリプトを使ってSSHからPowerStoreにログインし、シャットダウンコマンドを実行するだけです。

Ansibleを使用するという手もありましたが、AnsibleでもSSHでも「PowerStoreの電源を落とす=PowerStoreから返り値が返ってこない」ため、電源が正常に落ちているかを現地で確認する必要があります。

どちらを使っても、現地での動作チェックが必要になるのであれば、より簡単に実装できるSSHからコマンドを実行するという手法を取りました。

構成イメージを図1に示します。

図1. 構成イメージ

電源を上げる際は、PowerStoreの電源コードを一度抜いて指しなおすことで、自動で電源が上がります。

弊社では、ポートごとにリモートで通電の制御が可能なPDUを使用しており、そちらを利用して、リモートで電源を上げております。

他の手法も考慮しましたが、PowerStoreは電源を上げるのに電源ケーブルを刺しなおす必要がある(コマンドなどでは電源を上げられない)ため、今回のPDU側で通電を管理する、という手法を取りました。

スクリプトを書いてみよう!

実際に作成したスクリプトを以下に共有します。

_______________________________

import paramiko

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.WarningPolicy())

client.connect('[IP address]', username='[service]', password='[Password]')

stdin, stdout, stderr = client.exec_command('svc_appliance shutdown -f')

stdin.close()

client.close()

_______________________________

スクリプトの重要な部分を解説しますと、

  • import paramiko はparamiko というpythonでSSH接続を行い、コマンドを実行できるライブラリを呼び出しています。
  • connect('[IP address]', username='[service]', password='[Password]') でPowerStoreのIPアドレス、Serviceユーザとそのパスワードを指定します。

事前にPowerStore Managerから、PowerStoreへのSSH接続が許可されていることを確認してください。

(PowerStore ManagerのSetting ⇒ SSH Management から確認可能です。PowerStoreにSSHからログインする際のIPアドレスも同様に確認できます。)

  • stdin, stdout, stderr = client.exec_command('svc_appliance shutdown -f') は、実際にPowerStoreで実行するコマンド(svc_appliance_shutdown -f)を指定しています。

どれくらい電力削減できるの?

図2は、PowerStoreが一日に消費する電力をグラフにしたものです。

弊社で利用しているPowerStoreは、丸一日電源をONのままにしていると一日で約17kWの電力を消費します。

仮に20:00~08:00 までの間PowerStoreの電源を落とすと仮定すると、単純計算で、一日あたり9kW電力を削減できる計算となります。

これは、1年に換算すると、約3300kWの電力削減となります。

この3300kWという値は、一般的なエアコンが1年を通じて使用する電力がおよそ800kWと仮定すると、約4年分ということになります!

画像2.png

図2. PowerStoreの一日の消費電力量

まとめ

やってみた感想は?

今回、PowerStoreの自動化に取り組みましたが、思っていたより簡単なスクリプトで実装できました。

冒頭でも話しましたが、ネットワンシステムズでは、SGDsの達成に向けた取り組みを積極的に進めており、今回の電源ON/OFF自動化が少しでもこの活動に貢献できると、自分としても嬉しいです!

終わりに

今回は、PowerStoreの電源ON/OFF自動化の取り組みとして、電源を自動で落とすスクリプトと、その効果についてご説明させていただきました。 

今後は、電力削減効果を実測し、電源自動化の効果をより正確に計測したいと思っています。

また、電力の削減以外にも、PowerStoreの自動化に取り組んでおり、最終的には、ボリュームの作成やVMの構築まで自動化できるようなスクリプトの作成を目指しています。

もし、ご不明な点や気になる等ございましたら、お気軽にネットワンシステムズへご相談ください!

毎回言っていますが、Dell PowerStoreの導入を検討する際は、日本で一番PowerStoreに詳しい男がいる弊社にご連絡ください!!

参考

    ※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。

    RECOMMEND