16
Web アアアアアアアアアアア アアアアアアアアアアアア Ryo Shibata

Webアプリケーションによる電源管理システムのご紹介

  • Upload
    npsg

  • View
    453

  • Download
    2

Embed Size (px)

Citation preview

Web アプリケーションによる電源管理システムのご紹介

Ryo Shibata

自己紹介• 主な仕事

– ネットワークに関する検証 /POC の実施、検証設備の管理等• プログラミング歴

– BASIC– Perl, JavaScript– Fortran, Java, C++– Python

• 現在の仕事におけるプログラミング活用– スクリプトによるネットワーク機器設定– 各種便利ツール開発– API を利用した設定投入

アジェンダ

• 開発背景• システム概要• 付加機能• 導入結果と今後

開発背景

開発背景• 約 100 ラックの検証設備(ラボ)• 各機器はネットワーク経由でアクセス可能• 各ラックにはリモートから操作可能な PDU ( Power

Distribution Unit )が設置されている• PDU の各ポートにはディスクリプション

を設定可能(接続機器名を設定)• 数種類の PDU が混在

• 電源操作、機器名の変更は、それぞれの PDU に Web ブラウザでアクセスし、個別に操作

PDU

開発背景(続)• それぞれの PDU にアクセスするのが面倒• 接続機器名のメンテナンスが面倒• PDU のベンダーによって操作方法が異なる

• Web 上から複数の PDU を簡単に操作可能• PDU のタイプに依らない操作方法• 誰でも使える• 電源オフさせない設定が可能• 異なるラボにも展開可能

システム概要

環境説明

A B C

A01

A02

B01

B02

C01

C02

ラボを上から見た図

ラック番号

東京 A

B

C

A01

A02

A01-A

A01-B

ラボ 列 ラック PDU

電源操作時のフロー

クライアント サーバ PDU列選択

PDU 一覧

ラック選択

結果

電源操作

ポートの情報

SNMP GET

ラック一覧

結果

SNMP SET

AjaxSNMP

F

F01,F02, …

F10

F10-A, F10-B

F10-B-24 ON

使用している技術

• クライアント側– JavaScript

• jQuery• Bootstrap

– Ajax

• サーバ側– Linux (Cent OS on VMware ESXi)– Apache– MySQL– Perl スクリプト– SNMP

• Net::SNMP 使用

データの格納

Lab ID

Lab Name

Rack ID

Lab ID

Rack Name

Rack Group

PDU ID

PDU Name

Rack ID

IP Address

PDU Type ID

PDU Type ID

ro community

rw community

state OID

name OID

• DB 構造(抜粋)

• PDU– 各ポートの状態( ON/OFF )– 各ポートの名前 ( 通常接続されている機器名 )– 消費電力(一部 PDU のみ対応)

ラボ情報 ラック情報 PDU 情報(個々の PDU )

PDU 情報( PDU の種類別)

付加機能

付加機能

• PDU 管理機能– PDU の追加、削除、編集、 ポートの操作可否設定

• 電源オフさせない機能をユーザレベルに拡張– 使用者がセルフサービスで電源操作の可否を設定・解除可能

• ポートのグルーピング機能– 複数 PDU にまたがるポートをグループ化できる機能– プロジェクト単位での電源操作をしやすくする

導入結果と今後

導入結果

• 電源操作は基本当該システムから実施• 不使用時電源 OFF のオペレージョンを徹底• 検証の効率化と節電の両立に貢献

電源 ON/OFF 操作数 /day

今後

• スクリプトで時刻ベースで自動 OFF=> 除外する仕組みが必要

• 状態を保持してポートの使用状況を把握– 各ポートの状態の履歴を保存する必要がある– 当該システム以外の方法で電源操作した場合は?

=> 定期的なポーリング?負荷は?