openQRM Deep DIVE
2012/5/16
OSSラボ株式会社
120516 1 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/
アジェンダ
1.openQRM概説 openQRMの概要を説明します。 ・アーキテクチャ、用語開設 ・特徴的なプラグイン
2.openQRM基礎 openQRMを導入にあたって、必要と手順についてのポイントを説明します。 ・動作環境 ・インストール手順 ・初期必須プラグインとおすすめプラグイン ・動作確認とトラブルシュート
3.リソース管理 openQRMで管理するリソース管理について説明します。 ・仮想サーバ、ストレージの考え方
4.デモンストレーション openQRMのユーザビリティーと機能についてデモンストレーションを行います。 ・openQRMで、VMwareを管理する。
5.参考情報について 6.番外編 様々なオープンソース群で、自動管理ツールについてのトピックスを お話しします。
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 2
もっと楽な方法ないの?
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 3
• 非仮想化、ベアメタル(物理)サーバ • ローカルストレージ デプロイメント • パッチを当てたり、構成変えたり、再インストールしたり ##以下繰り返し
1. openQRM概説
・アーキテクチャ、用語解説 ・特徴的なプラグイン
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 4
openQRM
Nag
ios,
Col
lect
d, Z
abbi
x
Puppet
Open vSwitch
Clonezilla Cobbler
FAI/OPSI LinuxCOE
openQRMの位置づけ
5 120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/
ネットワーク管理
アプリケーション・フレームワーク
監視
ジョブ管理
資源管理/プロビジョニング (クラウド/VM/実機)
OSインストール
初期設定/構成管理
アプリケーション構成
コマンド自動実行
Linux/Windows
仮想化環境 VMware, Xen, KVM, lxc, OpenVZ
物理環境 Intel/AMD x64アーキテクチャ
クラウド環境 Amazon, Eucalyptus等
クラウド管理コンソール
セルフサービス・ポータル
openQRMシステム概要
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/
サーバイメージ・ストレージ
openQRMサーバ
DHCP
PXE 仮想化環境 VMware, Xen, KVM, lxc, OpenVZ
DNS
プラグイン・マネージャ
Linux Windows
NFS SAN
iSCSI Local他
物理環境 Intel/AMD x64アーキテクチャ
Linux Windows
クラウド・サービス
その他 プラグイン API
クラウド 管理者 コンソール
ユーザ 管理者 コンソール
Solaris
Solaris PXE ブート 構成情報取得
サーバイメージ ダウンロード
tftpd, SAN Local, 他
サーバイメージ変換 REST API
Enterprise Cloud
6
プラグイン アーキテクチャ openQRMサーバは、プラグインの管理機能のみ 必要な機能は全てプラグインで提供 APIも提供されているため、カスタムプラグインの開発が可能
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/
仮想化環境プラグイン • VMware ESX/ESXi • Citrix XEN server • XEN • kvm • OpenVZ • lxc • Virtualbox • Local Server (Bear Metal)
クラウド管理プラグイン • セルフサービスポータル • ハイブリッド・クラウド • イメージシェルフ • ECサポート*
ストレージプラグイン • Local LVM • tmpfs • NFS • iSCSI • AOE (ATA over Ethernet) • NetApp Filer • Dell Equallogic • Zfs
管理ツールプラグイン • Nagios • Collectd • Zabbix • Puppet • LinuxCOE • LDAP認証* • noVNC • SSH-term
ネットワークプラグイン • Dhcp • Dns • Tftp • Wake On Lan • IPプール管理* • ボンディング*
HAサポートプラグイン • 自動フェイルオーバー • OpenQRM HA構成 • DRBD管理 • IPMI管理*
Etc.
*はエンタープライズ版提供機能
7
openQRMの管理単位
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/
リソース システムが稼働する入れ物(物理サーバ/仮想マシン)
カーネル openQRMが集中管理するためのブートローダ
(PXELinux)
ルート オペレーティング・システムのrootファイル+サービスプログラム群
アプライアンス
ストレージ
サービスレベル アプライアンスへのリソースの割当等構成情報 イメージ
ファイルシステム、デプロイメント情報
8
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 9
ストレージ
起動ディスクそのもの ファイルシステムは、OSに依存 中身が直接触れる、snapshot/clone一発!
使用できるデバイス ローカルディスク
LVM Block device
ネットワークストレージ NFS iSCSI AoE (ATA over Ethernet)
組み合わせるリソースによって、管理方法(プラグイン)が異なる 120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 10
ルート オペレーティング・システムのrootファイル+サービスプログラム群
ストレージ
イメージ
ストレージに紐づく ストレージから起動するシステムに関する管理情報
パスワード ルートデバイス (ストレージ名) ルートファイルシステム (ext3等) デプロイメント方法 (NFSからコピー、テンプレートやcobbler等を使用、等)
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 11
ルート オペレーティング・システムのrootファイル+サービスプログラム群
ストレージ
イメージ ファイルシステム、デプロイメント情報
リソース
openQRMの管理ネットワーク配下にある全てのマシン 物理サーバでも仮想化サーバでも、管理ネットワークに接続されたNICの
MACアドレスで管理される
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 12
リソース システムが稼働する入れ物(物理サーバ/仮想化環境)
カーネル
リソースに紐づく openQRMでは、管理下にある物理サーバ及び仮想化ホスト/ゲストのデプロイメントを動的に変更するために、ネットワークブート(PXE-boot)を使用する
PXE-bootは元々nfs等のネットワークファイルシステムからブートするためのプロトコルであるが、openQRMは次ページのシークエンスにあるように、設定したアプライアンス(リソースの組み合わせ)とブートストレージをPXEプロトコルで設定するため、ネットワークファイルシステムだけでなくローカルストレージからのブートアップを指定できる
最初にNBPから読み出されるカーネルは、自動的に設定されるため、特に設定は不要
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 13
カーネル openQRMが集中管理するためのブートローダ
(PXELinux)
アプライアンス
イメージとリソースを組み合わせた、稼働するシステム
CPU数、メモリ、リソースタイプ等、サービスレベル情報を設定できる
イメージとリソースは、柔軟に組み合わせを変更できる
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 14
リソース システムが稼働する入れ物(物理サーバ/仮想化環境) カーネル
OpenQRMが集中管理するためのブートローダ(PXELinux)
ルート オペレーティング・システムのrootファイル+サ
ービスプログラム群
アプライアンス
ストレージ
サービスレベル アプライアンスへのリソースの割当等
構成情報 イメージ
ファイルシステム、デプロイメント情報
2. openQRM基礎
・動作環境 ・インストール手順
・初期必須プラグインとおすすめプラグイン ・動作確認とトラブルシュート
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 15
稼働環境
(1) 物理HW OpenQRMが動作するのに、必要なプロセッサ/メモリ/ディスク
• Intel/AMD x86 2core、1.8Ghz~ • メモリ 1GB~ • 20GB以上のフリーディスクスペース (2) OS OpenQRMが動作する、オペレーティングシステムとバージョン
• Ubuntu / Debian Lucid以降 (推奨) • CentOS / Redhat EL 5.5以降
(3) ミドルウェア OpenQRMが動作するのに、サポートされるソフトウェアとバージョン
• Apache 2.2以降 • MySQL 5.1以降 • PHP 5.3以降 • 他、プラグインによって多数あるが、インストール時に自動的に選択される
(4) ネットワーク OpenQRMが動作するのに、必要なネットワーク環境
• 管理/ストレージ用と公開用の別々の1Gbpsネットワークを推奨
• 被管理サーバの管理/ストレージ用ネットワークは、dhcp設定が必要(但し、OpenQRM側で固定IPアドレス割当は可能)
• 被管理サーバは、dhcp/PXEブートするために管理サーバと同一のarpブロードキャストドメインである事
• NTPが稼働している事(推奨) 111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 16
サポート環境
ストレージ:OpenQRMが、管理できるストレージ 各サーバのローカルストレージ
LVM2 NFS4 iSCSI2 AoE Dell Equallogic NetApp Filer Solaris/OpenSolaris ZFS GlusterFS
OpenQRMが、管理できる環境 物理サーバ(Intel/AMD x86アーキテクチャ) VMware ESXi 4.1以降 Citrix Xen Server V5.6以降 Xen V3.5以降 KVM kvm-62以降 OpenVZ Lxc VirtualBox サポートOS:OpenQRMが、管理できるOS Ubuntu Debian CentOS / Redhat EL Fedora SUSE/OpenSuse Windows XP / 2000 server以降
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 17
システム構成 1. 最低構成(検証/開発用)
1台の物理サーバ上で、openQRM、ストレージサーバ、仮想化環境を稼働 Intel/AMD x86_64 2core VTサポートプロセッサ、1.8Ghz~ メモリ 1GB~ 20GB以上のフリーディスクスペース+サーバイメージ保管用の別パーティション20GB以上 Ubuntu 10.04LTS(推奨) LVM2, Xen又はKVM
2. 基本構成 3台以上の物理サーバ
(openQRMサーバ、ストレージサーバ、被管理サーバ) 要件は、最低構成と同様
3. 本番HA構成 4台以上の物理サーバ
(openQRMサーバx2、ストレージサーバ、被管理サーバ) 管理/ストレージ用ネットワークと公開用ネットワーク
要件は、最低基本構成と同様
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 18
OpenQRMサーバ ストレージサーバ NFS/iSCSI/AoE
被管理サーバ 物理環境/
VMware/Xen/KVM等
OpenQRMサーバ HA構成
ストレージサーバ NFS/iSCSI/AoE
被管理サーバ 物理環境/
VMware/Xen/KVM等
インストール手順 Ubntu 10.04LTS server版をインストール
インストールオプションは作業用にOpenSSHをインストール、LAMP(Apache, MySQL, PHP等)は後でopenQRMと同時にインストールされるのではずしておく。
必要なソフトをインストール # apt-get -y install subversion make nfs-common nfs-kernel-server open-iscsi-utils
iscsitarget
openQRMをインストール 随時最新版に更新されているので、SourceForgeからチェックアウトする # svn co https://openQRM.svn.sourceforge.net/svnroot/openQRM openQRM # cd openQRM/trunk/src/ # make && make install && make start
ストレージサーバを設定 被管理サーバを登録 詳しくは、「ハイブリッド・クラウド管理基盤 openQRMV4.9 クイックスタートガイド」を参照ください
http://www.slideshare.net/sfunai/120210penqrm49quickstart 120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 19
プラグインについて
必須プラグイン dhcp tftp
推奨プラグイン dns Collectd Novnc ssh-term WOL
ストレージプラグイン システムの置き場として LVM-NFS or NFS
仮想化プラグイン 使用するものを有効化
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 20
被管理サーバは起動時にopenQRMサーバで有効化されているプラグインを自動的にインストールする。 従ってプラグイン構成を変更した場合は、被管理サーバ上でopenQRMクライアントを再起動する必要が有る。
ネットワーク構成のハマりどころ
openQRMは、インストール先のサーバに2つ以上のネットワークインターフェースがある場合、管理ネットワークのインターフェースを選択可能になっているが、デフォルトのeth0以外を管理ネットワークとして選択した場合、いろいろ追加設定が必要になる。
openQRM配下で管理されるサーバは、管理ネットワークに接続されるNICがpxe対応のものが必要
また管理されるサーバの管理ネットワークに接続されるNICもeth0に設定されていないと、都度いろいろ設定変更が必要になる。
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 21
dhcp構成 openQRM管理ネットワーク上に、他のdhcpサーバは存在できない。 被管理サーバの管理ネットワークIFは、原則dhcp/pxe設定が必要。 しかし、openQRM側でアドレスは固定割り当てされる。 設定は、/usr/share/openqrm/plugins/dhcpd/etc/dhcpd.conf
# Standard configuration directives... option subnet-‐mask 255.255.255.0; option broadcast-‐address 10.0.0.255; option routers 10.0.0.1; option domain-‐name "oqnet.org"; option domain-‐name-‐servers 10.0.0.1; ddns-‐update-‐style ad-‐hoc; next-‐server 10.0.0.100;
dns
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 22
/etc/network/interfaces の設定内容が自動的に反映される
初期値のため、環境に合わせて変更
PXEサーバの指定、openQRMサーバのアドレスが自動的に設定される
ので変更不可
dhcp構成 続き # Group the PXE bootable hosts together group { # PXE-‐specific configuration directives... option vendor-‐encapsulated-‐options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
subnet 10.0.0.0 netmask 255.255.255.0 { default-‐lease-‐time 21600; max-‐lease-‐time 43200; # the ip range to serve range 10.0.0.10 10.0.0.199; filename "/pxelinux.0”;
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 23
環境に合わせて、調整
dns構成
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 24
必須ではないが、openQRMサーバ自身がdnsサーバとして使用できる。 Dnsが必須のプラグインもあるので、たてておいた方が良い /etc/bind/named.conf.optionsの下記をコメントアウトし、0.0.0.0を外部DNSのアドレスに変更し保存する。
// forwarders { // 0.0.0.0; // };
/usr/share/openqrm/plugins/dns/etc/openqrm-plugin-dns.confの下記を編集、保存する。
# plese configure your domain name for the openQRM network here ! OPENQRM_SERVER_DOMAIN="oqnet.org"
被管理物理サーバのNICが2枚以上あり、管理ネットワーク以外のIFでdhcp設定されている場合は、dhcpclientによってresolv.confが書き換えられないように設定が必要。
openQRMの仕掛け
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 25
ハイパーバイザ: • VMware ESXi • Citrix XenServer • Hybrid-cloud (AMI tools)
ストレージ: • NetApp • Dell EquaLogic • Coraid
Dropbear ssh 各種API
openQRM Client
コマンドキュー
WEBコンソール
php
bash、各種ツール群
bash、各種ツール群
MySQL
openQRMサーバ
被管理システム
• Linux • openSolaris/Solaris X86 • Windows • Xen/KVM/OpenVZ/lxc/VirtualBox
監視/制御
openQRMの内部構造
重要なディレクトリ/ファイル 起動ファイル /etc/init.d/openqrm 設定ファイル
openQRM /usr/share/openqrm/etc/openqrm-server.conf tftp /usr/share/openqrm/tftpboot/ dhcp /usr/share/openqrm/plugins/dhcpd/etc/dhcpd.conf dns /usr/share/openqrm/plugins/dns/etc/openqrm-plugin-dns.conf
データベース /var/lib/mysql/openqrm コマンドキュー /usr/share/openqrm/var/spool/ ログファイル /var/log/messages, /var/log/syslog
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 26
openQRMのディレクトリ構造 ホームディレクトリ
/usr/share/openqrm ├── bin #openQRM制御プログラム ├── doc #リリースノート/ライセンス等 ├── etc #各種設定ファイル群 ├── include #openQRM制御プログラム ├── plugins #プラグインプログラム群 ├── sbin #openQRM制御プログラム ├── tftpboot #ネットワークブート設定ファイル、カーネル等 ├── var #コマンドキュー └── web #webポータル+各種ブートサービス用ファイル
プラグインデイレクトリ /usr/share/openqrm/plugins/プラグイン名
├── bin #プラグインプログラム ├── etc #プラグイン設定ファイル ├── include #制御プログラム等 └── web #webポータル+各種ブートサービス用ファイル
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 27
openQRMのCLI
/ホームディレクトリ/openqrm/plugins/プラグイン名/bin/openqrm-プラグイン名
# /usr/share/openqrm/plugins/kvm/bin/openqrm-‐kvm Usage : /usr/share/openqrm/plugins/kvm/bin/openqrm-‐
kvm start/stop/reboot/delete/list <-‐n vm-‐name> /usr/share/openqrm/plugins/kvm/bin/openqrm-‐
kvm setboot <-‐m mac-‐address> <-‐b local/net> /usr/share/openqrm/plugins/kvm/bin/openqrm-‐
kvm create <-‐n vm-‐name> <-‐m mac-‐address> <-‐r memory> [-‐d disk-‐size ] [-‐c cpus ] [-‐v vncpassword ]
以下略 120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 28
そしてShellです root@openqrm2:~# cat /usr/share/openqrm/plugins/kvm/bin/openqrm-‐kvm #!/bin/bash # this script automatically manages kvm # # This file is part of openQRM. # # openQRM is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 # as published by the Free Software Foundation. # # openQRM is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with openQRM. If not, see <http://www.gnu.org/licenses/>. # # Copyright 2011, openQRM Enterprise GmbH <info@openqrm-‐enterprise.com> 120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 29
トラブルシューティング
サービスの稼働を確認 openQRMサーバ: # service openqrm status 被管理サーバ: # service openqrm-client status
まずはログ確認、 openQRMサーバと、被管理サーバ # cat /var/log/syslog | grep プラグイン名 など
コマンドキューを確認(openQRMサーバ) # ls /usr/share/openqrm/var/spool/
次に被管理サーバ上でCLI実行、ログを確認 # export RUN_IN_BACKGROUND=true # bash -x /usr/share/..../openqrm-kvm-storage-vm create ..... 2> /
tmp/kvms-create.log
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 30
3. openQRMリソース管理
・仮想サーバ、ストレージの考え方
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 31
openQRMでの基本ブートシークエンス
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 32
openQRMサーバ ストレージ クライアント
①電源投入
BIOSはネットワークブート(PXE boot)に設定
②DHCP要求 ③アドレス割当 PXEサーバ通知
④PXE-NBP要求 ⑤カーネルファイル通知、送信
⑥カーネルをtftpdダウンロード initrdマウント、ネットワーク初期化
⑧アイドル状態で待機
⑧Image-deployment hookをダウンロード、マウント要求
⑨マウント承認
イメージ/アプライアンスが割当済か?
Yes
No
⑩カーネルモジュールとOpenQRMクライアントをインストール、サーバ・イメージをRead Onlyで再マウント
⑪マウント承認 ⑫再マウントされたルートファイルシステムでinitを実行、サービス開始
openQRMリソースの状態遷移 openQRMのブートシークエンスでは、実際のルート・ファイル・システムが使用できるようになる前にマウントされる初期ルート・ファイル・システムであるinitrdが展開された状態をアイドル状態と呼ぶ
Initrdはカーネルにバインドされ、カーネル・ブート・プロシージャーの一部としてロードされ、initrd がロードされると、カーネルはこれを、実際のファイル・システムを使用可能にするためのモジュールをロードした状態になる
そして実際のルート・ファイル・システムの取得という 次段階ブート・プロセスをopenQRMのアプライアンスマネージャの設定によって決定される
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 33
Reboot
Wake up Start
Start
Sleep
Power off Stop
Stop Restart
停止状態 アイドル 状態
稼働状態
WoL/IPMI マネージャ
仮想化 マネージャ
アプライアンス マネージャ
リソースマネージャ
アイドル状態のアプライアンス
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 34
openQRM client
VMware ESXiや、Cirtrix XenServer等、APIを使用するもの以外の被管理システムでは、openQRM clientが常駐しopenQRMサーバと通信、制御、監視を行う
openQRM clientをインストールし、openQRMサーバ管理下にするためには、以下の方法がある。 物理サーバ:openqrm-local-server をインストール VMware/KVM/Xen/Citrix VM:自動インストール KVM-storage/Xen-storage/Citirix-storage/OpenVZ/lxc VM:
openqrm-local-vm-clientをインストール
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 35
ネットワーク管理機能
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 36
コミュニティ版 エンタープライズ版
VMへのアドレス指定割当
Dhcp.confの書き換え
IP管理プラグインで可能
VMへのVLAN割当 不可
VMへネットワーク帯域割当
無し
VLAN単位でのネットワーク帯域割当
無し
ファイアウォール機能 無し
ロードバランサ機能 無し
ローカル・デプロイメントとネットワーク・デプロイメント
openQRMでは、アイドル状態から実際のルートファイルシステムを取得する方法として、ローカル・デプロイメントとネットワーク・デプロイメントの2種類のタイプがある
ネットワーク・デプロイメントは、通常のPXEブート同様ネットワークファイルシステムからルートファイルをマウントしブートアップする
ローカル・デプロイメントは、起動するサーバのローカルストレージからルートファイルをマウントしブートアップする
openQRMでは、ローカル・デプロイメントを使用するか、ネットワーク・デプロイメントを使用するかによって、使用するプラグインが異なる
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 37
デプロイメントタイプとプラグインの組み合わせ
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 38
物理サーバ 物理サーバ 物理サーバ 物理サーバ
仮想 CPU
仮想 CPU
物理 CPU
仮想 disk
仮想 disk
物理 disk
仮想 CPU
仮想 CPU
物理 CPU
仮想 disk
仮想 disk
仮想 disk
共有ストレージ
KVM, VMware-ESX, Citrix, Xen, Vbox +
Lvm-storage (nfs/iSCSI/AoE) Nfs-storage, iSCSI-storage
Equallogic, Netapp, Sanboot, AOE, ZFS
KVM-storage XEN-storage Citrix-storage Lxc-storage
Openvz-storage
local-storage tmpfs-storage
ネットワーク・デプロイメント ローカル・デプロイメント
吮呀吇叻呉
ネットワーク・デプロイメント(1)
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 39
openQRMサーバ
ストレージ プラグイン
nfs-storageプラグインiscsi-storageプラグイン lvm-storageプラグイン zfs-storageプラグイン
openqrm -client
共有ストレージ Linux/Solaris x86システム
ボリュームの作成/変更/削除
nfs/iscsi lvm/zfs
Swapのみ /root
openqrm -client
/rootの場所、起動方法の指定
起動時にマウント
Local-server/solx86プラグインのopenqrm-clientを使用した、ネットワークストレージ・デプロイメント
サーバ プラグイン
仮想化 プラグイン
Local-serverプラグイン solx86プラグイン
kvmプラグイン vmware-esxプラグイン Xenプラグイン Citrixプラグイン, Vboxプラグイン
被管理システム(仮想化ホスト)
VM
※被管理システムは、仮想化ホストだけでなく、物理サーバでも可能
※VMware ESXi/XenServerには、openqrm-clientをインストールできないため、APIを使用している
ネットワーク・デプロイメント(2)
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 40
API
共有ストレージ NAS
ボリュームの作成/変更/削除
被管理システム(仮想化ホスト)
Swapのみ /root
openqrm -client
/rootの場所、起動方法の指定
起動時にマウント
NASネイティブ・プラグインを使用した、
ネットワークストレージ・デプロイメント
Dell EquallogicNetapp FAS Coraid Etherdrive (AoE)
openQRMサーバ
ストレージ プラグイン
equallogic-storageプラグインnetapp-storageプラグイン aoe-storageプラグイン
サーバ プラグイン
仮想化 プラグイン
Local-serverプラグイン solx86プラグイン
kvmプラグイン vmware-esxプラグイン Xenプラグイン Citrixプラグイン, Vboxプラグイン
VM
※被管理システムは、仮想化ホストだけでなく、物理サーバでも可能
※VMware ESXi/XenServerには、openqrm-clientをインストールできないため、APIを使用している
ローカル・デプロイメント(1)
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 41
openQRMサーバ
ストレージプラグイン
Local-storageプラグイン tmpfs-storageプラグイン
ボリュームの作成/変更/削除
被管理システム(物理サーバ)
swap/root
openqrm -client
/rootの場所、起動方法の指定
内蔵ディスク
ローカルストレージプラグインのopenqrm-clientを使用した、ローカルストレージ・デプロイメント
サーバ プラグイン
Local-serverプラグイン solx86プラグイン
ローカル・デプロイメント(2)
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 42
openQRMサーバ
仮想化 ストレージ プラグイン
kvm-storageプラグインopenvz-storageプラグイン lxc-storageプラグイン citrix-storageプラグイン xen-storageプラグイン
管理 コンソール
共有ストレージ NAS/SAN
ボリュームの作成/変更/削除
nfs/iscsi lvm/zfs
被管理システム(仮想化ホスト)
Swapのみ /root
openqrm -client
/rootの場所、起動方法の指定
起動時にマウント
仮想化ストレージプラグインを使用した、
ローカルストレージ・デプロイメント
サーバ プラグイン
Local-serverプラグイン
nfs exports, iscsi target等の設定
nfs マウント、 iscsi イニシエータ等の設定
openQRMではない設定 openQRMではない設定
※共有ストレージは、NASだけでなく、被管理システムからマウントできるストレージであれば、可
※kvm/OpenVZ/XenServer等で、Live-Migrationを行う場合は、全てのホストから同一のLUNをマウントできるように設定が必要
VM
NASの使用について openQRMでストレージサーバを構成するには、以下の方法がある。
1. Linux/Solaris x86システムを、ストレージサーバとして使う ネットワーク・デプロイメント(1)、ローカル・デプロイメント(2)の方法が可能
2. NASをストレージサーバとして使う openQRMから直接管理できるNASは、Dell Equallogic、Netapp FAS、Coraid
Etherdrive (AoE)のみのため、それ以外のNASはそれぞれのサーバ上で接続設定が必要
Dell Equallogic、Netapp FAS、Coraid Etherdrive (AoE)では、ネットワーク・デプロイメント(2)、ローカル・デプロイメント(2)の方法が可能
上記機種以外のNASでは、ローカル・デプロイメント(2)の方法が可能 ローカル・デプロイメント(2)の方法では、kvm, Citrix XenServer, OpenVZ, lxc等から接続/管理が可能だが、VMware-ESXi用のプラグインは未提供。
従って、VMware-ESXiのストレージとしてNASを使用するには、次ページの方法のようにNASヘッドとしてLinuxシステムを使用する。 openQRMサーバなどを、NASヘッドとして共用する事も可能だが、ネットワークに負荷がかかるため、実運用環境では推奨しない
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 43
NASとVMware ESXiの接続
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 44
openQRMサーバ
ストレージ プラグイン
nfs-storageプラグインiscsi-storageプラグイン lvm-storageプラグイン
ボリュームの作成/変更/削除
openqrm -client
/rootの場所、起動方法の指定
サーバ プラグイン
仮想化 プラグイン
Local-serverプラグイン
vmware-esxプラグイン
NASヘッド(Linux)
管理 コンソール
共有ストレージ NAS
nfs/iscsi lvm/zfs
/root 起動時にマウント
nfs exports, iscsi targetの設定
nfs マウント、 iscsi イニシエータの設定
Swapのみ
API
VMware ESXi
VM
openQRMではない設定 openQRMではない設定
システムの新規インストール方法
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 45
ストレージ リソース インストール方法
Local-storage 物理サーバ
Cobbler/LinuxCOE/FAI/OPSI
各ツールで作成したテンプレートからインストール
local-storage Grabしたストレージからインストール
NFS/LVM-NFS 物理サーバ VMware VM KVM VM Xen VM Cirtrix VM
Image-shelf NFS上のイメージにimport
Install from nfs NFS上のイメージからコピー
Install from local ローカルディスク上のルートからコピー
iSCSI/LVM-iSCSI/AoE/LVM-AoE
Install from nfs NFS上のイメージからコピー
Install from local ローカルディスク上のルートからコピー
KVM-storage Xen-storage Citrix-storage OpenVZ-storage Lxc-storage
KVM-storage VM Xen-storage VM Citrix-storage VM OpenVZ VM Lxc VM
Cobbler/LinuxCOE/FAI/OPSI
各ツールで作成したテンプレートからインストール
iso ホスト上にマウントしたisoイメージからインストール
cd-rom ホスト上にマウントしたcd-romからインストール
マイグレーション機能
既存システムをOpenQRM配下に追加 P2V/V2P(非仮想化仮想化環境) V2V(仮想化環境A仮想化環境B) P2P(非仮想化環境A非仮想化環境B) ライブマイグレーション
ハイパーバイザに依存、異種仮想化環境間は不可 KVM, Xen, OpenVZをサポート
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 46
既存サーバのマイグレーション
既存サーバをopenQRM配下にするには、下記の方法が用意されている 既存物理サーバ
Local-serverプラグインを使用し、openQRMクライアントをインストールすることによって自動的に認識される BIOS設定でDHCP/ネットワークブートに変更する必要があるが、IPアドレスは固定割当が可能で、起動もローカル
ストレージのままで変わらない システムを移動/複製するためには、Local-storageプラグイン(Clonezilla)を使用し、ルートファイルシステムをク
ローニングする
既存仮想化ホスト VMware ESXiとXenServer以外のKVM等の仮想化ホストは、上記既存物理サーバの手順でopenQRM配下にし
てから、該当仮想化プラグインを用いて仮想化ホストを作成する 仮想化ホストシステムを移動/複製するためには、既存物理サーバと同様に、Local-storageプラグインを使用す
る VMware ESXiとXenServerは、VMware ESX/XENプラグインを使用してopenQRM配下に出来るが、仮想化ホス
トシステムの移動/複製はできない(VMware ESXi/XenServerがPXEブートをサポートしない仕様のため)
既存仮想化ゲスト 仮想化ゲストは、ルートファイルシステムを共有ストレージサーバの新規作成したボリュームにコピーが必要である。
一旦openQRMのボリュームにコピーすれば、そのボリュームからイメージを作成し、他の共有ストレージ環境のサーバにマイグレーションする事が可能になる
既存仮想化ゲストからopenQRMの共有ストレージ環境へマイグレーションするには、新規作成した共有ストレージサーバ上のLVMボリュームに、ローカルのルートファイルシステムをrsyncでコピーし、コピーしたボリュームをルートとしてイメージを作成、アプライアンスを作成する
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 47
自動インストレーションのツール
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 48
Clonezilla/Partclone Local-storageプラグインに組み込まれている、Norton Ghost®に似た、パーティションおよびディスククローンツール
Cobbler
Local-storage/Kvm-storage/Citrix-storage/OpenVZ/lxcプラグインと組み合わせて使用、殆どのディストリビューションのLinuxに対応
LinuxCOE
FAI
OPSI Windowsプラグインと組み合わせて使用
Puppet アプライアンス毎に指定可能、OSインストール後のアプリケーションインストール/設定を自動実行
Cobbler+Puppetで全自動セットアップ
Cobblerは別途インストールが必要 openQRMサーバと同居可能だ(と思う)が、Ubuntu10.04では
Cobblerを上手く設定できなかったので、別途Ubuntu11以上か、CentOSのマシン(VMでも可)で作成するのが簡単
Cobblerサーバ上にはapache2(httpd)とtftpdが必須、dhcpはopenQRMサーバを使うので動かしてはいけない
openQRMとの連携の仕組み 1. openQRM上でイメージ作成時に、Cobblerのプロファイルを選択 2. 自動的にdhcpd.confのnext serverがcobblerサーバに変更される 3. アプライアンスを起動すると、Cobblerからtftpブートされる 4. Cobblerでのインストール完了後、openQRMサーバから再起動 5. 起動時にPuppetのマニフェストが実行される
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 49
Cobblerの設定(Debian/Ubuntu系OSの場合)
物理サーバにインストールする場合、openqrm-clientもインストールするために.preseedファイルに以下を追加する
d-‐i preseed/late_command string wget http://openQRMサーバアドレス/openqrm/boot-‐service/openqrm-‐cobbler-‐autoinstall-‐client; chmod +x ./openqrm-‐cobbler-‐autoinstall-‐client; mv -‐f openqrm-‐cobbler-‐autoinstall-‐client /target; chroot /target ./openqrm-‐cobbler-‐autoinstall-‐client openQRMサーバアドレス
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 50
Cobblerの設定(Redhat系OSの場合) 物理サーバにインストールする場合、openqrm-clientもインストールするために事前にopenQRMサーバ上の/usr/share/openqrm/plugins/cobbler/etc/templates/openqrm_client_auto_install.snippets をCobblerサーバの/var/lib/cobbler/snippets/openqrm_client_auto_install.snippetsにコピー
Cobbler manager > Configuration > Snippetsから選択、以下を編集@@@YOUR_OPENQRM_SERVER_IP@@@を、openQRMサーバのIPアドレスに入れ替えて保存、次に.ksファイルを編集し、%postに下記を追加### # Install openQRM client $SNIPPET('openqrm_client_auto_install.snippets')
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 51
Puppetの設定 Puppetプラグインを有効化されると、自動的にインストールされる 初期設定では、以下のマニフェストが用意されている
basic-server A basic server profile database-server A data-base server configuration (Mysql) lamp A LAMP setup (Linux/Apache/Mysql/Php) webmin has webmin installed and running webserver A basic webserver profile (Apache)
マニフェストを追加する場合は、以下のフォルダに追加する /usr/share/openqrm/plugins/puppet/etc/default/manifests/ あとは、アプライアンスリストからpuppetアイコンをクリックし、設定するマニフェストを選択し保存するだけ
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 52
HA機能 High-Availabilityプラグイン
N+1フェイルオーバー
DRBD-MCプラグイン DRBD Management Consoleを使用し、簡単にLinux-HA環境を構築
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved
OpenQRM N+1 フェイルオーバー
OpenQRM リソースプール
従来のHA構成
本番系
待機系
53
ハイブリッドクラウド機能
複数のクラウド基盤とイメージをインポート/エキスポート パブリッククラウドサービス
Amazon EC2 プライベートクラウド
Eucalyptus、Ubuntu Enterprise Cloud
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 54
セルフサービスポータル機能 ユーザー管理
グループ/ユーザ毎の使用プロダクト設定 課金管理 セルフ登録/管理者登録
プロダクト管理 各リソースの課金単位設定 IPプーリング/VLAN設定(エンタープライズ版のみ)
セルフサービスポータル GUIリソース管理 課金情報提供
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved
システム担当者
クラウド管理者
ユーザー/グループ管理 リソースプール割当 サービスレベル管理 課金管理
プロビジョニング要求
リソース作成 構成設定/変更 サービス起動/停止
リソースプール
構成DB
OpenQRM
55
デモ構成
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 56
OpenQRMサーバ Ubuntu10.04LTS
ストレージサーバ NFS/iSCSI/AoE Ubuntu10.04LTS
VMware ESXi5 ベアメタル Ubuntu10.04LTS
KVM-storage CentOS6.2
Xen-host Cobbler
Ubuntu11.10
サーバ作成手順
1. 使用するストレージを作成(スナップショット/クローン) 2. ストレージと使用する起動ファイルを指定して、イメージを作成
3. イメージとリソースを指定して、アプライアンスを作成 4. アプライアンスの起動
システムのインストールから構成設定まで自動実行
★リソースが足らなければ、ネットワークブート構成にしたシステムを接続するだけで自動的にリソースに追加される
111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 57
デモ
Kvm-storage-cobbler-puppet Vmware install
Image-shelf
Bear metal migration Kvm-storage HA
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 58
リソース
http://groups.google.com/group/openqrm-ja [email protected]
開発元:http://www.openqrm-enterprise.com/ OSSホーム:http://www.openqrm.com プロジェクト:https://sourceforge.net/projects/openqrm/ 日本語資料 製品紹介プレゼンテーション クイックスタートガイド プラグインガイド http://www.ossl.co.jp
120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 59