59
openQRM Deep DIVE 2012/5/16 OSSラボ株式会社 120516 1 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/

120516openqrm deepdive

  • Upload
    oss

  • View
    2.033

  • Download
    1

Embed Size (px)

DESCRIPTION

オープンクラウドキャンパス【第3回自作プライベートクラウド研究会】openQRM Deep Dive資料です

Citation preview

Page 1: 120516openqrm deepdive

openQRM Deep DIVE

2012/5/16

OSSラボ株式会社

120516 1 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/

Page 2: 120516openqrm deepdive

アジェンダ

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

Page 3: 120516openqrm deepdive

もっと楽な方法ないの?

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 3

• 非仮想化、ベアメタル(物理)サーバ • ローカルストレージ デプロイメント • パッチを当てたり、構成変えたり、再インストールしたり ##以下繰り返し

Page 4: 120516openqrm deepdive

1. openQRM概説

 ・アーキテクチャ、用語解説  ・特徴的なプラグイン

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 4

Page 5: 120516openqrm deepdive

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等

クラウド管理コンソール

セルフサービス・ポータル

Page 6: 120516openqrm deepdive

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

Page 7: 120516openqrm deepdive

プラグイン アーキテクチャ   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

Page 8: 120516openqrm deepdive

openQRMの管理単位

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/

リソース システムが稼働する入れ物(物理サーバ/仮想マシン)

カーネル openQRMが集中管理するためのブートローダ

(PXELinux)

ルート オペレーティング・システムのrootファイル+サービスプログラム群

アプライアンス

ストレージ

サービスレベル アプライアンスへのリソースの割当等構成情報 イメージ

ファイルシステム、デプロイメント情報

8

Page 9: 120516openqrm deepdive

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 9

Page 10: 120516openqrm deepdive

ストレージ

  起動ディスクそのもの   ファイルシステムは、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ファイル+サービスプログラム群

ストレージ

Page 11: 120516openqrm deepdive

イメージ

  ストレージに紐づく   ストレージから起動するシステムに関する管理情報

  パスワード   ルートデバイス  (ストレージ名)   ルートファイルシステム (ext3等)   デプロイメント方法 (NFSからコピー、テンプレートやcobbler等を使用、等)

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 11

ルート オペレーティング・システムのrootファイル+サービスプログラム群

ストレージ

イメージ ファイルシステム、デプロイメント情報

Page 12: 120516openqrm deepdive

リソース

  openQRMの管理ネットワーク配下にある全てのマシン   物理サーバでも仮想化サーバでも、管理ネットワークに接続されたNICの

MACアドレスで管理される

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 12

リソース システムが稼働する入れ物(物理サーバ/仮想化環境)

Page 13: 120516openqrm deepdive

カーネル

  リソースに紐づく   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)

Page 14: 120516openqrm deepdive

アプライアンス

  イメージとリソースを組み合わせた、稼働するシステム

  CPU数、メモリ、リソースタイプ等、サービスレベル情報を設定できる

  イメージとリソースは、柔軟に組み合わせを変更できる

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 14

リソース システムが稼働する入れ物(物理サーバ/仮想化環境) カーネル

OpenQRMが集中管理するためのブートローダ(PXELinux)

ルート オペレーティング・システムのrootファイル+サ

ービスプログラム群

アプライアンス

ストレージ

サービスレベル アプライアンスへのリソースの割当等

構成情報 イメージ

ファイルシステム、デプロイメント情報

Page 15: 120516openqrm deepdive

2. openQRM基礎

 ・動作環境  ・インストール手順

  ・初期必須プラグインとおすすめプラグイン  ・動作確認とトラブルシュート

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 15

Page 16: 120516openqrm deepdive

稼働環境

(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

Page 17: 120516openqrm deepdive

サポート環境

ストレージ: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

Page 18: 120516openqrm deepdive

システム構成 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等

Page 19: 120516openqrm deepdive

インストール手順   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

Page 20: 120516openqrm deepdive

プラグインについて

  必須プラグイン   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クライアントを再起動する必要が有る。

Page 21: 120516openqrm deepdive

ネットワーク構成のハマりどころ

  openQRMは、インストール先のサーバに2つ以上のネットワークインターフェースがある場合、管理ネットワークのインターフェースを選択可能になっているが、デフォルトのeth0以外を管理ネットワークとして選択した場合、いろいろ追加設定が必要になる。

  openQRM配下で管理されるサーバは、管理ネットワークに接続されるNICがpxe対応のものが必要

  また管理されるサーバの管理ネットワークに接続されるNICもeth0に設定されていないと、都度いろいろ設定変更が必要になる。

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 21

Page 22: 120516openqrm deepdive

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サーバのアドレスが自動的に設定される

ので変更不可

Page 23: 120516openqrm deepdive

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

環境に合わせて、調整

Page 24: 120516openqrm deepdive

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が書き換えられないように設定が必要。

Page 25: 120516openqrm deepdive

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

監視/制御

Page 26: 120516openqrm deepdive

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

Page 27: 120516openqrm deepdive

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

Page 28: 120516openqrm deepdive

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

Page 29: 120516openqrm deepdive

そして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

Page 30: 120516openqrm deepdive

トラブルシューティング

  サービスの稼働を確認   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

Page 31: 120516openqrm deepdive

3. openQRMリソース管理

  ・仮想サーバ、ストレージの考え方

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 31

Page 32: 120516openqrm deepdive

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を実行、サービス開始

Page 33: 120516openqrm deepdive

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 マネージャ

仮想化 マネージャ

アプライアンス マネージャ

リソースマネージャ

Page 34: 120516openqrm deepdive

アイドル状態のアプライアンス

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 34

Page 35: 120516openqrm deepdive

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

Page 36: 120516openqrm deepdive

ネットワーク管理機能

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 36

コミュニティ版 エンタープライズ版

VMへのアドレス指定割当

Dhcp.confの書き換え

IP管理プラグインで可能

VMへのVLAN割当 不可

VMへネットワーク帯域割当

無し

VLAN単位でのネットワーク帯域割当

無し

ファイアウォール機能 無し

ロードバランサ機能 無し

Page 37: 120516openqrm deepdive

ローカル・デプロイメントとネットワーク・デプロイメント

  openQRMでは、アイドル状態から実際のルートファイルシステムを取得する方法として、ローカル・デプロイメントとネットワーク・デプロイメントの2種類のタイプがある

  ネットワーク・デプロイメントは、通常のPXEブート同様ネットワークファイルシステムからルートファイルをマウントしブートアップする

  ローカル・デプロイメントは、起動するサーバのローカルストレージからルートファイルをマウントしブートアップする

  openQRMでは、ローカル・デプロイメントを使用するか、ネットワーク・デプロイメントを使用するかによって、使用するプラグインが異なる

120516 OSS Laboratories Inc. Copyleft http://creativecommons.org/licenses/by/2.1/jp/ 37

Page 38: 120516openqrm deepdive

デプロイメントタイプとプラグインの組み合わせ

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

ネットワーク・デプロイメント ローカル・デプロイメント

吮呀吇叻呉

Page 39: 120516openqrm deepdive

ネットワーク・デプロイメント(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を使用している

Page 40: 120516openqrm deepdive

ネットワーク・デプロイメント(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を使用している

Page 41: 120516openqrm deepdive

ローカル・デプロイメント(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プラグイン

Page 42: 120516openqrm deepdive

ローカル・デプロイメント(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

Page 43: 120516openqrm deepdive

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

Page 44: 120516openqrm deepdive

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ではない設定

Page 45: 120516openqrm deepdive

システムの新規インストール方法

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からインストール

Page 46: 120516openqrm deepdive

マイグレーション機能

  既存システムをOpenQRM配下に追加   P2V/V2P(非仮想化仮想化環境)   V2V(仮想化環境A仮想化環境B)   P2P(非仮想化環境A非仮想化環境B)   ライブマイグレーション

  ハイパーバイザに依存、異種仮想化環境間は不可   KVM, Xen, OpenVZをサポート

111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 46

Page 47: 120516openqrm deepdive

既存サーバのマイグレーション

  既存サーバを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

Page 48: 120516openqrm deepdive

自動インストレーションのツール

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インストール後のアプリケーションインストール/設定を自動実行

Page 49: 120516openqrm deepdive

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

Page 50: 120516openqrm deepdive

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

Page 51: 120516openqrm deepdive

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

Page 52: 120516openqrm deepdive

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

Page 53: 120516openqrm deepdive

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

Page 54: 120516openqrm deepdive

ハイブリッドクラウド機能

  複数のクラウド基盤とイメージをインポート/エキスポート   パブリッククラウドサービス

  Amazon EC2   プライベートクラウド

  Eucalyptus、Ubuntu Enterprise Cloud

111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 54

Page 55: 120516openqrm deepdive

セルフサービスポータル機能   ユーザー管理

  グループ/ユーザ毎の使用プロダクト設定   課金管理   セルフ登録/管理者登録

  プロダクト管理   各リソースの課金単位設定   IPプーリング/VLAN設定(エンタープライズ版のみ)

  セルフサービスポータル   GUIリソース管理   課金情報提供

111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved

システム担当者

クラウド管理者

ユーザー/グループ管理 リソースプール割当 サービスレベル管理 課金管理

プロビジョニング要求

リソース作成 構成設定/変更 サービス起動/停止

リソースプール

構成DB

OpenQRM

55

Page 56: 120516openqrm deepdive

デモ構成

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

Page 57: 120516openqrm deepdive

サーバ作成手順

1. 使用するストレージを作成(スナップショット/クローン) 2.  ストレージと使用する起動ファイルを指定して、イメージを作成

3.  イメージとリソースを指定して、アプライアンスを作成 4.  アプライアンスの起動

  システムのインストールから構成設定まで自動実行

★リソースが足らなければ、ネットワークブート構成にしたシステムを接続するだけで自動的にリソースに追加される

111010 Copyright 2011(C) OSS Laboratories Inc. All Rights Reserved 57

Page 58: 120516openqrm deepdive

デモ

  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

Page 59: 120516openqrm deepdive

リソース

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