オープンソースのストレージ管理ソフト、OpenATTICを触ってみる


openATTICとは?

現時点(2016年10月)ではOpenATTICの日本語情報はほぼないので、簡単な紹介をしたいと思います。
openATTICは、ドイツのit-novum社が開発しているオープンソースソフトウェアです。(2017年10月註:OpenATTIC部門は2016年11月に独SUSEに買収され、OpenATTICはSUSE Enterprise Storage 5に含まれるようになりました。※OpenATTICはオープンソースのままです。)
GPL2ライセンスに基づきフリーで使用することができます。類似製品にはNexentaやNetApp製品などがありますが、openATTICはこれらを代替することができます。
ハードウェアリソースの管理や論理ストレージエリアの共有・分散が行え、効率的なデータ利用を安価に行うことが可能になり、個別にストレージ管理をする煩雑さから開放されます。

主な機能は
SDS。必要な時に必要なディスクをストレージプールから作成。ZFSを使用して重複排除も可能。モニタリング機能もあります。
クラウドストレージ。ストレージプールとなるディスク群をDRBDで冗長化することで単一障害点を回避。また、Cephに対応しスケーラブルな拡張が可能。
ユニファイドストレージ。プールから作成したディスクのNFS、CIFD、iSCSI接続を提供。ESXやOpenStackへのFC接続も。
これらを全てGUIで操作可能です。REST APIにも対応しています。

SDSソリューションの選択肢、または単にCephのGUIとしてもチェックしてみてはいかがでしょうか。
openATTICのサイト(GUIのデモあり)

※ただし現時点ではOpenATTIC2.x系は開発ステータスで、安定版はまだ出ていません。
安定版では多ノードレプリケーションが可能でCephより高速なDRBD9にも対応する予定です。

さて、上記のようにopenATTICを説明しつつも、私もopenATTICを触るのは初めてです。まずはインストールしてみました。

openATTICのインストール手順

本記事では、openATTICのインストールからGUIでのボリューム作成までをご紹介します。
ホストマシンはCentOS7.2に3GBのディスクを3本アタッチした構成です

ストレージプールの作成

今回はZFSではなくてLVMで作ります。
PVを作って、1つのVGにまとめます。

# pvcreate /dev/vdb
# pvcreate /dev/vdc
# pvcreate /dev/vde
# vgcreate oavg /dev/vdb /dev/vdc /dev/vdd

centosシステム用の論理ボリュームにはsysのタグを付けて、openATTICがストレージプールとして使わないようにしておく。

# vgchange --addtag sys centos

SE Linuxを無効にする。

# setenforce 0

yumレポジトリのインストール

# yum install epel-release
# yum install http://repo.openattic.org/rpm/openattic-2.x-el7-x86_64/openattic-release.rpm

また、nightly RPM buildsを有効にしておきます。
/etc/yum.repos.d/openattic.repoを開いて[openattic-nightly] のenabledを1にします。

パッケージインストール

# yum install openattic
# yum install openattic-gui

pnp4nagiosの編集

openATTICのグラフ表示に必要な部分です。
/etc/nagios/nagios.cfgに以下を追加

#
# Bulk / NPCD mode
#

# *** the template definition differs from the one in the original nagios.cfg
#
service_perfdata_file=/var/log/pnp4nagios/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

# *** the template definition differs from the one in the original nagios.cfg
#
host_perfdata_file=/var/log/pnp4nagios/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

/etc/nagios/objects/commands.cfgに以下を追加

#
# definitions for PNP processing commands
# Bulk with NPCD mode
#
define command {
command_name process-service-perfdata-file
command_line /bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$
}

define command {
command_name process-host-perfdata-file
command_line /bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$
}

openATTICの設定を構成する

# oaconfig install

デフォルトパスワードの変更

# oaconfig changepassword openattic
Changing password for user 'openattic'
Password: <enter password>
Password (again): <re-enter password>
Password changed successfully for user 'openattic'

Web GUIにアクセス

webブラウザで、「http:///openattic」にアクセス

先程変更したパスワードでログインします。

ボリューム作成

ボリュームのタブからadd

ボリューム名などを入力

ボリュームができました。

マシン側でデバイスを確認してみると・・・

[root@oa ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom 
vda 252:0 0 15G 0 disk 
├─vda1 252:1 0 500M 0 part /boot
└─vda2 252:2 0 14.5G 0 part 
├─centos-root 253:0 0 13G 0 lvm /
└─centos-swap 253:1 0 1.5G 0 lvm [SWAP]
vdb 252:16 0 3G 0 disk 
└─oavg-test--volume 253:2 0 3G 0 lvm /media/test-volume
vdc 252:32 0 3G 0 disk 
└─oavg-test--volume 253:2 0 3G 0 lvm /media/test-volume
vdd 252:48 0 3G 0 disk

以上、サワリだけでしたが、OpenATTICの紹介でした。
CephやDRBDモジュールの使用、その他の機能の使用などは、また今度!