ラベル KVM の投稿を表示しています。 すべての投稿を表示
ラベル KVM の投稿を表示しています。 すべての投稿を表示

2013年11月10日日曜日

oVirtを使ってみた

Ovirtについて、Wikiにまとめましたので、そちらもご参照ください。

この所クラウド基板調査をして正直辛い大変なのですが、OpenStackの構築に心が折れてしまい、諦めていたところ、oVirtというのを教えてもらったので、試してみました。
(っといっても知ったのはつい3日くらい前なんですがね)

oVirtって聞いた事ないし、ググってもあまり情報が出てこないので、少々不安だったのですが。

  • 日本語対応
  • メモリオーバーコミット対応
  • KVMベース
  • スケールアウトも出来そう
  • Webベース
  • インストールは比較的楽

っと感触は良さそうです。
ではさっそくデモ環境をセットアップしてみましょう。

前提条件
OS:CentOS6.4(64bit)またはFedora
CPU仮想支援のあるPC
最低1つのNIC
割と大きなHDD(40GByteもあればいいかな)
対象となるサーバのホスト名がDNSで名前解決(正引き、逆引き)出来ること。
(hostsに記載だけでは、逆引きが出来ないのでNG)
  1. CentOS6.4をインストール。
    1. お試しなのでディスク全体を使用。LVMで自動パテーションを切ってしまうと、/homeが別パテーションになるので注意。
    2. IPは固定(DHCPでもいいけど、後が楽なので)
  2. アップデート
    1. yum -y update
    2. yum -y upgrade
  3. リポジトリ登録
    1. yum localinstall http://ovirt.org/releases/ovirt-release-el.noarch.rpm
    2. yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  4. リポジトリを修正
    1. vim /etc/yum.repos.d/el6-ovirt.repo
    2. baseurl=http://resources.ovirt.org/releases/stable/rpm/EL/$releaserver
      の行を以下に変更。
      baseurl=http://resources.ovirt.org/releases/stable/rpm/EL/6/
  5. oVirtエンジンをインストールします。
    1. yum install -y ovirt-engine
  6. デモ環境なので一台で済ませるため、AllinOneプラグインをインストールします。
    1. yum install -y ovirt-engine-setup-plugin-allinone
  7. セットアップを走らせます。
    1.  engine-setup

[root@test ~]# engine-setup
[ INFO  ] Stage: Initializing
[ INFO  ] Stage: Environment setup
          Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging-aio.conf', '/etc/ovirt-engine-setup.conf.d/10-packaging.conf']
          Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20131109232823.log
          Version: otopi-1.1.2 (otopi-1.1.2-1.el6)
[WARNING] Cannot detect if hardware supports virtualization
[ INFO  ] Stage: Environment packages setup
[ INFO  ] Stage: Programs detection
[ INFO  ] Stage: Environment setup
[ INFO  ] Stage: Environment customization
          Configure VDSM on this host? (Yes, No) [No]: yes     <-----Yesと応答
          Local storage domain path [/var/lib/images]:         <-----そのままEnter
          Local storage domain name [local_storage]:           <-----そのままEnter
          --== PACKAGES ==--
[ INFO  ] Checking for product updates...
[ INFO  ] No product updates found
          --== NETWORK CONFIGURATION ==--
          Host fully qualified DNS name of this server [test.localdomain.localdomain]:                  <-----そのままEnter
          iptables was detected on your computer. Do you wish Setup to configure it? (yes, no) [yes]:no <-----noと応答(デモ環境なので)
          --== DATABASE CONFIGURATION ==--
          Where is the database located? (Local, Remote) [Local]:    <-----そのままEnter
          Setup can configure the local postgresql server automatically for the engine to run. This may conflict with existing applications.
          Would you like Setup to automatically configure postgresql, or prefer to perform that manually? (Automatic, Manual) [Automatic]:    <-----そのままEnter
          Using existing credentials
          --== OVIRT ENGINE CONFIGURATION ==--
          Engine admin password:    <-----Webログイン用パスワードを入力
          Confirm engine admin password:    <-----パスワードを入力
[WARNING] Password is weak: 辞書の単語に基づいています
          Use weak password? (Yes, No) [No]: yes    <-----yesと応答(デモ環境なので)
          Application mode (Both, Virt, Gluster) [Both]:    <-----そのままEnter
          Default storage type: (NFS, FC, ISCSI, POSIXFS) [NFS]:    <-----そのままEnter
          --== PKI CONFIGURATION ==--
          Organization name for certificate [localdomain.localdomain]:    <-----そのままEnter
          --== APACHE CONFIGURATION ==--
          Setup can configure the default page of the web server to present the application home page. This may conflict with existing applications.
          Do you wish to set the application as the default page of the web server? (Yes, No) [Yes]:    <-----そのままEnter
          Setup can configure apache to use SSL using a certificate issued from the internal CA.
          Do you wish Setup to configure that, or prefer to perform that manually? (Automatic, Manual) [Automatic]:    <-----そのままEnter
          --== SYSTEM CONFIGURATION ==--
          Configure an NFS share on this server to be used as an ISO Domain? (Yes, No) [Yes]:    <-----そのままEnter
          Local ISO domain path [/var/lib/exports/iso]:    <-----そのままEnter
          Local ISO domain name [ISO_DOMAIN]:    <-----そのままEnter
          --== END OF CONFIGURATION ==--
[ INFO  ] Stage: Setup validation
[WARNING] Less than 16384MB of memory is available
          --== CONFIGURATION PREVIEW ==--
          Database name                      : engine
          Database secured connection        : False
          Database host                      : localhost
          Database user name                 : engine
          Database host name validation      : False
          Datbase port                       : 5432
          NFS setup                          : True
          PKI organization                   : localdomain.localdomain
          NFS mount point                    : /var/lib/exports/iso
          Application mode                   : both
          Firewall manager                   : iptables
          Host FQDN                          : test.localdomain.localdomain
          Datacenter storage type            : nfs
          Configure local database           : True
          Set application as default page    : True
          Configure Apache SSL               : True
          Configure VDSM on this host        : True
          Local storage domain directory     : /var/lib/images
          Please confirm installation settings (OK, Cancel) [OK]:<-----そのままEnter
あとは自動でインストールが走ります。
インストールが終了したら、
http://<サーバのIP>/にアクセスします。

まずは管理用ポータルにアクセスします。

ユーザID:admin、パスワードはインストール時に設定したものでログインします。

defaultのデータセンターはどうやら機能しないようです。
defaultのストレージにISO_DOMAINというISOファイルを格納する場所があるので、
それと同じ設定をlocal_datacenterに設定します。
(画面キャプチャは設定済みです。)
おそらくNFSサーバがある場合、その設定をすればいいと思いますが、今回環境を用意できなかったので試せていません。

仮想マシンへのインストール用ISOイメージの登録は以下のコマンドで行います。
# engine-iso-uploader -i ISO_DOMAIN upload <ISO FIlename>
仮想マシンの構築や運用は、ユーザーポータルで行います。
同じく、ID:admin、パスワードはインストール時に設定したものでログインできます。
Windowsを入れる際にドライバが必要になりますが、ここからISOファイルをDLして入れます。
WebインターフェースからVNCが表示されない問題があります。ここから専用のクライアントをDLして入れ、console.vvというファイルに関連付けをしておきます。
仮想マシンの作成方法とかまで手が回りませんでしたが、こんな感じの画面です。


2013年3月10日日曜日

CloudStackでプライベートクラウドを構築してみた。

CloudStackでプライベートクラウドを構築してみた。
まだ全然よくわかっていないですが・・・

まずは、構築前に参考書籍紹介
今回構築するネットワーク構成は以下のとおり。
  • ManagedServer
    • 参考書籍通り、NFSサーバと兼用する。
  • ネットワーク
    • 基本ゾーンで構築。
    • ただし、公開用ネットワークと管理、NFS用のネットワークは分離する。
    • 本当はグローバルIPな環境下でないといけないのだが、一般家庭にそんなものはないので、ルータ配下で構築を行う。
    • したがって、DNSやゲートウエイの設定をルータのIPに設定している。
      (192.168.24.1、192.168.0.1が各ネットワークルータのIP)
ManagedServer構築

  1. OS:CentOS6 (64bit)を最小インストール。
  2. ホスト名、ネットワーク回り設定。
    (ホスト名がFQDNで解決できないといけないらしいので、hostname --fqdnで完全修飾ホスト名が返ってこない場合は、hostsファイルを設定してください。)
  3. SELinuxを無効に設定
  4. IPV6を無効に設定
  5. アップデート
  6. 時刻同期の為、ntpサーバをインストールします。
    (何らかの形で時刻同期が取れれば問題ないと思います。)
  7. yum -y install ntp
  8. 最寄りのntpサーバを/etc/ntp/confに登録。
  9. 起動&自動起動設定
  10. service ntpd start
    chkconfig ntpd on
  11. CloudStack管理サーバをインストールします。
    まずは、/etc/yum.repos.d/cloudstack.repoというファイルを作成します。
  12. [cloudstack]
    name=cloudstack
    baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
    enabled=1
    gpgcheck=0
    
  13. 管理サーバをインストールします。
  14. yum -y install cloud-client
  15. vhd-utilをダウンロードし、指定のディレクトリに展開します。
    (KVM環境の時に必要なのかは不明だが、一応入れておく)
  16. wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util
    cp vhd-util /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver
  17. MySQLサーバのインストール
    yum -y install mysql-server
    /etc/my.confの[mysql]セクションのdatadir行の下に以下追加
    innodb_rollback_on_timeout=1
    innodb_lock_wait_timeout=600
    max_connections=350
    log-bin=msql-bin
    binlog-format = 'ROW'
  18. 起動&自動起動設定
  19. service mysqld start
    chkconfig mysqld on
  20. データベースセキュリティの設定
  21. mysql_secure_installationを実行。 Disallow root login remotely以外を全てyで答える。
     最初にパスワードを聞かれるが、空エンターすることで、 新しいパスワードの設定を行う。
  22. データベース作成&初期データ投入
  23. cloudstack-setup-databases cloud:<ユーザcloudに対する設定するパスワード>@localhost --deploy-as=root:<さっき設定したrootのパスワード>
  24. ファイヤーウォール設定
  25. cloudstack-setup-managementを実行
  1. NFSサーバの構築
  2. (今回はManagedServer上に構築する。独立させてもOK)
    プライマリストレージとセカンダリストレージ用の共有ディレクトリを作成。
    mkdir -p /export/primary
    mkdir -p /export/secondary
    上記ディレクトリに対し、NFSでアクセスするためのアクセス制限を設定する。/etc/exportsファイルに以下の内容を記述。
    /export *(rw,async,no_root_squash)
  3. exportディレクトリをエクスポートします。
  4. exportfs -a
  5. NFSの設定
  6. /etc/sysconfig/nfsファイルより、以下の項目のコメントを外します。
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    STATD_PORT=662
    STATD_OUTGOING_PORT=2020
    RQUOTAD_PORT=875
  7. 自動起動設定
  8. chkconfig nfs on
  9. ファイヤーウォールの設定
  10. /etc/sysconfig/iptablesファイルのINPUTチェーンに以下追記します。
    -A INPUT -m state --state NEW -p udp --dport 111 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 111 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 2049 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT
    -A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT
    -A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT
    -A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT
    -A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT
    -A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT
  11. ここでいったんリブートします。
  12. KVMのテンプレートをDLして共有に展開します。
  13. /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm
    
    管理サーバのインストールは以上です。

KVMサーバ構築

  1. OS:CentOS6 (64bit)を最小インストール。
  2. ホスト名、ネットワーク回り設定。
    (ホスト名がFQDNで解決できないといけないらしいので、hostname --fqdnで完全修飾ホスト名が返ってこない場合は、hostsファイルを設定してください。)
  3. SELinuxを無効に設定
  4. IPV6を無効に設定
  5. アップデート
  6. 時刻同期の為、ntpサーバをインストールします。
    (何らかの形で時刻同期が取れれば問題ないと思います。)
  7. yum -y install ntp
  8. 最寄りのntpサーバを/etc/ntp/confに登録。
  9. 起動&自動起動設定
  10. service ntpd start
    chkconfig ntpd on
  11. CloudStackエージェントをインストールします。
    まずは、/etc/yum.repos.d/cloudstack.repoというファイルを作成します。
  12. [cloudstack]
    name=cloudstack
    baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
    enabled=1
    gpgcheck=0
    
  13. CloudStackエージェントをインストールします。
  14. yum -y install cloud-agent
  15. libvirtの設定
  16. /etc/libvirt/libvirtd.confのパラメタを以下のように書き換えます。
    listen_tls = 0
    listen_tcp = 1
    tcp_port = 16059
    auth_tcp = "none"
    mdns_adv = 0
    
    /etc/sysconfig/libvirtdのパラメタを以下のように書き換えます。
    LIBVIRTD_ARGS="--listen" #コメントを外し有効化する
    /etc/libvirt/qemu.confのパラメタを以下のように書き換えます。
    vnc_listem = "0.0.0.0" #コメントを外し有効化する
    libvirtを再起動します。
    service libvirtd restart
  17. 管理用、パブリック両ネットワークに対し、ブリッジを作成する。
  18. 以下参考例 (管理ネットワーク:eth0パブリックネットワーク:eth1)
    /etc/sysconfig/network-script/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=none
    NM_CONTROLLED=yes
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.0.108
    NETMASK=255.255.255.0
    IPV6INIT=no
    USERCTL=no
    GATEWAY=192.168.0.1
    DNS1=192.168.0.1
    BRIDGE=cloudbr0
    /etc/sysconfig/network-script/ifcfg-eth1
    DEVICE=eth1
    BOOTPROTO=none
    NM_CONTROLLED=no
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.24.7
    NETMASK=255.255.255.0
    GATEWAY=192.168.24.1
    DNS1=192.168.24.1
    IPV6INIT=no
    USERCTL=no
    BRIDGE=cloudbr1
    
    /etc/sysconfig/network-script/ifcfg-cloudbr0
    DEVICE=cloudbr0
    BOOTPROTO=none
    NM_CONTROLLED=no
    ONBOOT=yes
    TYPE=Bridge
    IPADDR=192.168.0.108
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1
    DNS1=192.168.0.1
    IPV6INIT=no
    USERCTL=no
    
    /etc/sysconfig/network-script/ifcfg-eth1
    DEVICE=cloudbr1
    BOOTPROTO=none
    NM_CONTROLLED=no
    ONBOOT=yes
    TYPE=Bridge
    IPADDR=192.168.24.7
    NETMASK=255.255.255.0
    GATEWAY=192.168.24.1
    DNS1=192.168.24.1
    IPV6INIT=no
    USERCTL=no
    
  19. 設定したらネットワーク再起動
  20. service network restart
  21. ファイヤーウォールの設定
  22. /etc/sysconfig/iptablesのINPUTチェーンに以下追記する
    -A INPUT -p tcp -m tcp --dport 1798 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 16509 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT
    
    セットアップ終了。
基本ゾーンの設定
  1. http://管理サーバのIP:8080/clientを開く。
  2. (ID:admin PW:password)
    ウイザードが立ち上がるが、
    「CloudStackを使用したことがるので、このガイドをスキップする」 のボタンをクリック。

     管理インターフェースが起動します (一般アラートは今のところ無視してOK)
  3. ゾーンの設定
      左のメニューのインフラストラクチャをクリック ゾーンのすべて表示をクリック。

  4. 右上にあるゾーンの追加をクリック

    基本が選択されているのを確認しNextをクリック
    ゾーンの名前、管理ネットワークのDNS、パブリックネットワークのDNSを設定。 ハイパーバイザはKVMを選択
    赤いストレージのアイコンを右側のPhysicalNetwork1へドラッグする。
    各アイコンのEditボタンを押して、トラフィックラベルを以下のように設定する。
    青アイコン:cloudbr0
    赤アイコン:cloudbr0
    緑アイコン:clodubr1
  5. ポッドの設定
  6. ここでは、管理ネットワークの中で、 ポッドに割り当てるIPの範囲を指定します。 (ここでは10個ほど予約)
  7. ゲストネットワークの設定
  8. 要するにパブリックネットワーク設定
  9. ストレージネットワークの設定
  10. よくわからないが、10個ほど予約 VLANのところは空白でOKらしい
  11. クラスタの登録
  12. KVMサーバを登録
  13. プライマリストレージの登録
  14. セカンダリストレージの登録
  15. 完了! (といいたいのだが、上手く動かなかった。)
    KVMサーバ上で、/etc/cgconfig.confに設定を追加し、マシンを再起動して上手くいった。
    参照先

  • はまりポイントその1 
    • VMに外部からSSHできない
      ネットワークのセキュリティレベルを変更。
      デフォルトでは外部接続NGになっている。
    • こんな感じで設定します。
  •  はまりポイントその2
    • MyISOの登録方法が分からん。
      テンプレートからISOの登録を行う。
      URLの箇所はhttpから始まるFQDNでないとダメらしい。 参照先より。
  • はまりポイントその3
    • システムVMへSSHができない。
      ポート番号が違うようです。
      ssh -i 169.254.xxx.xxx .ssh/id_rsa.cloud -p 3922 

      (169.254.xxx.xxx の箇所は、インフラストラクチャの中にある、 システムVMのリンクローカルIPアドレスを入れる)
  • はまりポイントその4
    • 仮想コンソールで192-168-24-101.realhostip.comのようなホスト名が解決できないといわれる。
      違うネットワークセグメントから接続するとなるようです。
      接続するクライアントPCのhostsに
      192.168.24.101 192-168-24-101.realhostip.com
      な感じて登録しましょう。
      (無論、DNSがあれば登録してもいい) 
  • はまりポイントその5 
    • windowsをインストールする際、システムコンソールで「japanese keybord」を 選択しているのに、「半角/全角」キーが押せない。
      どうも駄目のようです。インストールの際は、sキーを押して、その他のキーボードから 日本語キーボードを選択してください。
  • はまりポイントその6
    • windowsxpをインストールしたけど、ネットワークが繋がらないんだけど・・・
      どうもドライバが無いようです。現在調査中・・・
ちょっと余談
薄々感づいてはいましたが、仮想マシンの起動が遅い!
仮想マシンのHDDはNFS上に配置されているので、もしKVMサーバが1台しかないのなら、
KVMサーバ側にNFSサーバを兼用すれば、ネットワークがボトルネックにならなくて済むかも。
あと、ManagemedServer側は、NFSを分離できれば、単なるMySQLとTomCatなサーバのようです。
なので、推奨環境にあるような高スペックPCでなくても、仮想マシン数台の管理程度なら、ATOM程度で行けるんじゃないかなぁ。
(64botでないといけないのがイタしいですが・・)


2013/09/02
CloudStack4.1用に加筆修正。

2012年8月13日月曜日

KVMを試してみた。


広島サーバ友の会(仮称)に参加してきました。
内容は…まぁみなさん濃いなと(笑

その中で、結構KVMをやられている方が多いので、どんな物かやってみようかなと。
といっても機材がそう潤沢に有る訳ではないので、たまたま転がっていたX60が有ったので、
こいつに突っ込んでみた。
といっても、何をどうするのかさっぱり分からないので、参加者の方のブログを勝手に参考にさせてもらう。
(そもそもCentOS5で大丈夫だろうか…)
今回はお試しなので、インストールの段階で、「開発ツール」「開発ライブラリ」「ベース」でインストール
SELinuxは念のため切っておく。


ブログによると、KVMを最新にしておくとのことなので、本家からダウンロード。
configure make install

コマンドでぱちぱち管理もしんどいwので、何か無いかと探すと、OpenQRMと言うのがあるらしいので、
入れてみる。
ググったら出てきたサイトを参考に。

(2010年の記事なのでもしかしたら古いかも)


1:公式サイトからDL
2:make(必要な物が色々勝手に落ちてくる)
3:make && make install
4:make start
DAGリポジトリを有効にせよとエラーになるので、有効にする。

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
今度はepelリポジトリを有効にせよとエラーになるので、有効にする。

rpm -Uhv http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

 5:http://サーバのアドレス/openqrm/にアクセス
ID,PWともにopenqrmでログイン
ウイザードが有るので、NICの選択、MySQLを選択し、DBの作成(今回はrootのパスワードなし)

まずはプラグインを有効にする必要があるようだ。
dhcpd,tftpd,KVM,kvm-storage,windowsを有効にしてスタート

操作の方法はここを参考


っとここまでやって実は64bitでないと動かないらしいという情報が入る。
事実、この後色々やってみたが、どうも動かないので断念。
64bitな環境で試す機会があれば再度チャレンジしてみよう。
(防備録として本エントリは残しておく)