Translate

2013年8月12日月曜日

NIC1枚しか無い物理PCへCloudStack4.1をインストールする

前の記事でKVM重ねがけで実現していましたが、
やっぱり残念なので再度KVM重ねがけなしで
管理サーバ、DBサーバ、ストレージ、ホストすべて
1台の物理PCしかもNIC1枚で構築しなおしてみました。


ただ..この環境でセットアップすると
インスタンス作成まではうまくいきますが、
管理コンソール上のコンソール画面が動作しません。

All in Oneサーバ上でブラウザを開いても駄目でした。

詳細は次の記事に書いていますが..
KVM重ねがけの場合は親サーバから各セグメントが見えているので
親サーバ上のブラウザからなら問題なくコンソールは上がるのですが...




0. 用意したもの


・インターネット接続可能なセグメントに接続されたPC1台
 MouseComputer
 Core i7 1.2GHz×8
 HDD 500GB/Mem 8GB
 NIC 1枚(DHCP範囲外で固定IP割り当て、Proxyなし)
 ※PCによってはBIOSでIntelVTを有効化する必要がある
Ubuntu Server 12.04.2LTS CD-ROM
・Buffalo製WZR-HP-G450H
 家庭用ルータ
 デフォルト設定(リセットスイッチ押下→iフィルタオフ)
 LAN側:
  ルータのIP192.168.11.1
  DHCP有効範囲:192.168.11.2~65
  ※66番目以降は自由に固定IPを使える
・インターネット接続
 ルータのWAN側に接続
 プロクシ無しで接続できる
・クライアントPC(ルータにつながり、ブラウザが入っていればOK)

1. OSのインストール

  • Ubuntu Server12.04.2LTS CD-ROMメディアを挿入し電源オン
  • 日本語
  • Ubuntu Serverをインストール(I)
  • はい
  • 日本
  • 日本語
  • 日本語 - 日本語(かな 86) ※各自のキーボードによる
  • Alt + Shift
  • 戻る ※DHCPが引けたが固定IPを振る
  • ネットワークを手動で設定
  • 192.168.11.100
  • 255.255.255.0
  • 192.168.11.1
  • 192.168.11.1
  • william
  • royal ※ドメイン名は適当に変更すること
  • cloud ※OSアカウントは適当に変更すること
  • cloud ※OSアカウントは適当に変更すること
  • cloud ※パスワードは適当に変更すること
  • cloud
  • はい
  • いいえ
  • はい
  • ガイド - ディスク全体を使いLVMをセットアップする
  • SCSI1 (0,0,0) (sda) - 500.1 GB ATA Hitachi HDS72105 ※環境による
  • はい
  • はい
  • 499.8GB ※環境による
  • はい
  • いいえ
  • 空欄で次へ
  • 自動的にアップデートしない ※適宜変更
  • 続ける
  • はい
  • PCからCD-ROMを取り出す
  • 続ける ※再起動
  • cloud ※OSアカウントは適当に変更すること
  • cloud
  • sudo su -
  • cloud
  • vi .profile
 (最終行へ以下の1行を追加)
 export LANG=C
  • exit
  • sudo su -
  • cloud
  • vi /etc/sysctl.conf
 (最終行へ以下の2行を追加)
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1
  • sysctl -p
  • vi /etc/apt/sources.list.d/cloudstack.list
 (新規:以下の行を追加)
 deb http://cloudstack.apt-get.eu/ubuntu precise 4.1
  • wget -O - http://cloudstack.apt-get.eu/release.asc|apt-key add -


2. プライマリ/セカンダリストレージ構築

  • aptitude update && aptitude -y dist-upgrade && aptitude -y install ssh openntpd nfs-kernel-server bridge-utils
  • vi /etc/network/interfaces
 (iface eth0 inet static以降を以下のように変更)
 iface eth0 inet manual
 iface cloudbr0 inet static
  address 192.18.11.100
  netmask 255.255.255.0
  network 192.168.11.0
  broadcast 192.168.11.255
  gateway 192.168.11.1
  dns-nameservers 192.168.11.1
  dns-search royal
  bridge-ports eth0
  bridge-stp off
 auto cloudbr0
  • mkdir -p /export/primary /export/secondary
  • vi /etc/exports
 (最終行に以下の1行を追加)
 /export *(rw,async,no_root_squash,no_subtree_check)
  • exportfs -a
  • vi /etc/modprobe.d/nfs_lockd.conf
 (新規:以下の1行を追加)
 options lockd nlm_udpport=32769 nlm_tcpport=32803
  • vi /etc/default/nfs-kernel-server
 (修正前)
 RPCMOUNTDOPTS=--manage-gids
 (修正後)
 RCPMOUNTDOPTS="--port 892"
  • vi /etc/default/nfs-common
 (修正前)
 STATDOPTS=
 (修正後)
 STATDOPTS="--port 662 --outgoing-port 2020"
  • ufw allow 111
  • ufw allow 662
  • ufw allow 32769/udp
  • ufw allow 32803/tcp
  • ufw allow 2049
  • ufw allow 892
  • reboot

3. 管理サーバの構築

  • cloud ※OSへログインするユーザ
  • cloud
  • sudo su -
  • cloud ※聞かれない場合あり
  • aptitude -y install mysql-server cloudstack-management
  • cloud ※MySQLのrootパスワード
  • cloud
  • vi /etc/mysql/my.cnf
 ([mysqld]セクション内に以下の5行を追加)
 innodb_rollback_on_timeout=1
 innodb_lock_wait_timeout=600
 max_connections=350
 log-bin=mysql-bin
 binlog-format = 'ROW'
  • service mysql restart
  • cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:cloud
  • cloudstack-setup-management
  • mkdir -p /mnt/secondary
  • mount -t nfs 192.168.11.100:/export/secondary /mnt/secondary
  • mount -t nfs 192.168.0.1:/export/secondary /mnt/secondary
  • /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-mount-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
  • umount /mnt/secondary
  • cd /mnt
  • rmdir secondary
  • reboot


4. ホストの構築

  • cloud ※OSログインユーザ
  • cloud
  • sudo su -
  • cloud ※聞かれない場合あり
  • passwd root
  • cloud ※OSのルートパスワードを設定
  • cloud
  • aptutude -y install kvm qemu-utils qemu-kvm libvirt-bin virtinst cloudstack-agent
  • vi /etc/default/libvirt-bin
 (修正前)
 libvirtd_opts="-d"
 (修正後)
 libvirtd_opts="-d -l"
  • vi /etc/init/libvirt-bin.conf
 (修正前:11行目)
 env libvirtd_opts="-d"
 (修正後:11行目)
 env libvirtd_opts="-d -l"
  • vi /etc/libvirtd/libvirtd.conf
 (以下の行をコメントアウト)
 listen_tls = 0
 listen_tcp = 1
 tcp_port = "16509"
 mdns_adv = 0
 (修正前)
 #auth_tcp = "sasl"
 (修正後)
 auth_tcp = "none"
  • service libvirt-bin restart
  • ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
  • ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
  • apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
  • apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper
  • ufw allow proto tcp from any to any port 22
  • ufw allow proto tcp from any to any port 3922
  • ufw allow proto tcp from any to any port 1798
  • ufw allow proto tcp from any to any port 16509
  • ufw allow proto tcp from any to any port 5900:6100
  • ufw allow proto tcp from any to any port 49152:49216
  • ufw allow proto tcp from any to any port 9090
  • ufw allow proto tcp from any to any port 8250
  • ufw allow proto tcp from any to any port 8080
  • vi /etc/idmapd.conf
 (修正前)
 #Domain = localdomain
 (修正後)
 Domain = royal
  • vi /etc/sudores
 (11行目に以下の1行を追加し強制保存
 Defaults:cloud !requiretty
  • reboot

5. ゾーンの構築

※クライアントPCをルータの無線LANに接続(優先でもOK)
 DHCPにより192.168.11.2~65のいずれか1つ割り当てられる
※インターネットオプションでプロクシなし設定にしておく
  • ブラウザを起動
  • http://192.168.11.100:8080/client を開く
  • Language欄を「Japanese」に変更
  • ユーザ名「admin
  • パスワード「password
  • ドメインは空欄のまま
  • 「ログオン」ボタン押下

  • 「CloudStackを使用したことがあるので、このガイドをスキップする」押下

  • 「インフラストラクチャ」押下


  • ゾーンの「すべてを表示」押下


  • 「+ゾーンの追加」押下


  • 「基本」をチェック
  • 「Next」押下


  • 名前に「zone01」と入力
  • DNS1に「192.168.11.1」と入力 ※publicネットワークのDNS(NAT)として
  • 内部DNS1に「192.168.11.1」と入力 ※privateネットワークのDNS(NAT)として
  • ハイパーバイザを「KVM」に変更
  • 「Next」押下


  • 管理の「Edit」押下


  • KVMトラフィックラベルに「cloudbr0」と入力 ※privateネットワーク
  • 「OK」押下


  • ゲストの「Edit」押下


  • KVMトラフィックラベルに「cloudbr0」と入力 ※publicネットワーク
  • 「OK」押下


  • トラフィックの種類上の「ストレージ」アイコンをドラッグしてPhysical Network 1の破線部内へドロップ
  • ストレージの「Edit」押下


  • KVMトラフィックラベルに「cloudbr0」と入力 ※storageネットワーク
  • 「OK」押下
  • 「Next」押下


  • ポッド名に「pod01」と入力 ※privateネットワークの情報を設定
  • 予約済みシステムゲートウェイに「192.168.11.1」を入力
  • 予約済みシステムネットマスクに「255.255.255.0」を入力
  • 予約済み開始システムIPアドレスに「192.168.11.121」を入力
  • 予約済み終了システムIPアドレスに「192.168.11.140」を入力
  • 「Next」押下


  • ゲストゲートウェイに「192.168.11.1」を入力 ※publicネットワークの情報を設定
  • ゲストネットマスクに「255.255.255.0」を入力
  • ゲストの開始IPアドレスに「192.168.11.141」を入力 ※非DHCPなので4より上を適当に割り当てる
  • ゲストの終了IPアドレスに「192.168.11.160」を入力
  • 「Next」押下


  • ゲートウェイに「192.168.11.1」と入力 ※storageネットワークセグメントで記述
  • ネットマスクに「255.255.255.0」と入力
  • VLANは空欄のままにする
  • 開始IPアドレスに「192.168.11.161」と入力
  • 終了IPアドレスに「192.168.11.180」と入力
  • 「追加」押下


  • 「Next」押下


  • クラスタ名に「cluster01」と入力
  • 「Next」押下


  • ホスト名に「192.168.11.100」と入力 ※privateネットワークのIPアドレス
  • ユーザ名に「root」と入力
  • パスワードに「cloud」と入力
  • ホストタグは空欄のままにする
  • 「Next」押下


  • 名前に「primary01」と入力
  • プロトコルは「nfs」のままにする
  • サーバーに「192.168.11.100」と入力 ※本来はホストのIPアドレスをstorageネットワークアドレスで記述
  • Pathに「/export/primary」と入力
  • ストレージタグは空欄のままにする
  • 「Next」押下


  • NFSサーバーに「192.168.11.100」と入力 ※本来はホストのIPアドレスをstorageネットワークアドレスで記述
  • パスに「/export/secondary」と入力
  • 「Next」押下


  • 「Launch zone」押下 ※時間が少し掛かる
※ゾーンを有効化するかのダイアログが表示される

  • 「はい」押下
※管理コンソール画面に戻る

  • 右の「インフラストラクチャ」を押下


  • 「更新」を押下
  • システムVMの「すべてを表示」を押下


  • 2つのVMが存在し、ステータスが両方「Running」になるまで待機(結構時間がかかる)


  • 画面左の「テンプレート」を押下


  • 「CentOS 5.5(64-bit) no GUI (KVM)」をクリック


  • 準備完了欄が「Yes」となるまで待機(すこじ時間がかかる)

6. テスト

※Ubuntu Server12.04.2LTSのISOイメージを取り込み、インスタンスを起動するところまで

6.1 ISOイメージの取り込み

※管理コンソールが立ち上がり、adminでログイン済みの状態

  • 画面左の「テンプレート」を押下


  • 画面上のビューの選択を「ISO」に変更


  • 画面右上の「+ISOの登録」を押下


ここではUbuntuサイトを指しているので、特にグローバル設定変更は不要。
もし192.168.11.100上にApache2をインストールしてローカルのHTTPサーバ
からダウンロードしたい場合は、
secstorage.allowed.internal.sites」にCIDR表記でIP範囲指定する。
例えば「192.168.11.0/24」とすればよい。
  • ゾーンは「All Zone」のままにする
  • 起動可能はチェックのままにする
  • OSの種類を「Ubuntu 12.04 (64-bit)」に変更する
  • 抽出可能のチェックはないままとする
  • パブリックをチェックする
  • おすすめをチェックする
  • 「OK」押下
  • 「Ubuntu Server 12.04.2 LTS」をクリックする
  • 準備完了欄が「Yes」になるまで待機(更新ボタンで再表示して確認する)

6.2 インスタンス作成

  • 画面左の「インスタンス」を押下する
  • 画面右上の「+インスタンスの追加」を押下
  • ゾーンの選択は「zone01」のままとする
  • ISOまたはテンプレートの選択は「ISO」をチェック
  • 「次へ」押下
  • おすすめタブのUbuntu Server 12.04.2 LTSがチェックされているままとする
  • Hypervisorは「KVM」のままとする
  • 「次へ」押下
  • 「Small Instance」をチェックしたままにする
  • 「次へ」押下
  • 「Small」をチェックしたままにする
  • 「次へ」押下
  • 「default」をチェックする
  • 名前(オプション)欄に「Test」と入力する
  • グループへの追加(オプション)欄を空欄のままとする
  • 「VMの起動」押下
  • 画面左の「インスタンス」を押下する
  • 「Test」をクリックし、詳細タブの一番上にアイコン群がならぶまで待機する
  • アイコン群の右端のアイコン(コンソールの表示)をクリックする
  • ※UbuntuのインストーラのLanguage選択が出ればOK、あとは継続するかは適宜

以上



【注意】
最初にも書きましたが、インスタンスまでは作成されますが
コンソール画面をひらくとエラーになります。
現在調査中です。


最初、1つのLANに複数のセグメントを混ぜようかと思ったが、
KVMかさねがけによるKMのNAT設定を使ったなんちゃってルーティングがないので
同一セグメントを切り分けして設定した。

cloudbr0というブリッジを1つ作成し、
192.168.11.2~192.168.11.65はそのままルータのDHCP割り当てさせておき、
192.168.11.121~192.168.11.140 を管理ネットワーク(private)に、
192.168.11.141~192.168.11.160をゲストネットワーク(public)に、
192.168.11.161~192.168.11.180storageネットワークに
固定IP領域をそれぞれに割り振る。

このため3つのネットワークの
デフォルトゲートウェイは192.168.11.1
サブネットは255.255.255.0
DNSサーバはNATなのでルータのLAN側IPアドレス192.168.11.1
割り当てる。



やはりSecondary Storage VMで起動停止を繰り返す問題は、
渡しの場合ufwコマンドで設定するポートが足りなかったのだと思う。





0 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...