LoginSignup
1
0

More than 5 years have passed since last update.

Queens RDO Setup log

Last updated at Posted at 2018-04-07

ProLiant G7 ML110 にて、ESXi 5.5をUSBブート(の上で、OpenStackをNested)して使っていたが、ノベルティのUSBフラッシュメモリだったのでやっぱり壊れた。
なので素でOpenStackを入れ直した時のメモ。

環境

  • HP ProLiant G7 ML110
    • Memory 16GB
    • SSD 250 + 120 , HDD 250
    • Gigabit Ether x2
  • CentOS 7 17.08

HP ProLiant G7 ML110にて、いったん初期化した
https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c03576963

OpenStack Queens Release

セットアップ時点でリリースは「Queens
手順は下記の通り。いつものように自分評価・デモ用なのでオールインワンで十分。

packstackを実行したら以下のエラー

ERROR:root:Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/packstack/installer/run_setup.py", line 991, in main
    optParser = initCmdLineParser()
  File "/usr/lib/python2.7/site-packages/packstack/installer/run_setup.py", line 840, in initCmdLineParser
    parser = OptionParser(usage=usage, version="%prog {0}".format(version_info.version_string()))
  File "/usr/lib/python2.7/site-packages/pbr/version.py", line 466, in version_string
    return self.semantic_version().brief_string()
  File "/usr/lib/python2.7/site-packages/pbr/version.py", line 461, in semantic_version
    self._semantic = self._get_version_from_pkg_resources()
  File "/usr/lib/python2.7/site-packages/pbr/version.py", line 438, in _get_version_from_pkg_resources
    import pkg_resources
ImportError: No module named pkg_resources

pythonのsetuptoolsがあったら良いっぽいから、python-pip をインストールして同時にいれたら回避された。

  • python2-setuptools-22.0.5-1.el7.noarch.rpm
  • python-pip-8.1.2-1.el7.noarch.rpm

Answer ファイル作成

[root@openstack ~]# packstack --gen-answer-file=./answerfile
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

必要なのだけ「y」にして実行

[root@openstack ~]# packstack --answer-file=./answerfile

問題なく完了。
ただ、インターネット環境が若干しょぼいので時間がかかった。

環境再セットアップ

admin , demo パスワード変更

# openstack user set --password 'hogehoge' demo
# openstack user set --password 'fugafuga' admin

ネットワーク周り

いったんパブリックサブネットとルータを消す

(admin) # openstack
(openstack) router unset --external-gateway router1
(openstack) subnet delete public_subnet
(openstack) router remove subnet router1 private_subnet
(openstack) router delete router1

再作成

(admin) # openstack subnet create --network public \
--allocation-pool start=192.168.0.70,end=192.168.0.90 \
--dns-nameserver 192.168.0.2 \
--gateway 192.168.0.1 \
--no-dhcp \
--subnet-range 192.168.0.0/24 public_subnet


(demo) # openstack 
(openstack) subnet set --dns-nameserver 192.168.0.2 private_subnet

(demo) # openstack
(openstack) router create demo-router
(openstack) router add subnet demo-router private_subnet
(openstack) router set --external-gateway public demo-router

ICMP通信許可

インスタンスへのping許可、すべてのコードとすべての種類のICMP通信が許可される

(demo) # openstack
(openstack) security group rule create --protocol icmp default

SSH通信許可

インスタンスへのTCP 22 ポートへの通信許可、すべてのコードとすべての種類のSSH通信が許可される

(demo) # openstack
(openstack) security group rule create default --protocol tcp \
--dst-port 22:22 --remote-ip 0.0.0.0/0

参考:
(openstack) security group rule create default --protocol tcp --remote-ip 0.0.0.0/0
TCP 受信フルアクセス

これをやらんと外との通信がとれない。

外部論理ブリッジとの紐づけ確認(br-ex)
# ovs-vstcl show 

Link UPしてる同一L2SWに刺さってるサーバ側ネットワークインタフェース確認(enp2s0)
# ip addr show

# ovs-vsctl add-port br-ex enp2s0

# ovs-vsctl
    Bridge br-ex ★
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port br-ex
            Interface br-ex
                type: internal
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port "enp2s0" ★
            Interface "enp2s0" ★ 

ひとまず、SSH秘密鍵とフローティングIPアドレスあHorizon UIから作った。
備忘: # openstack floating ip create public

イメージ整備

イメージダウンロード

  • CentOS 7
  • Ubuntu 14.04 , 16.04
  • Windows Server 2012

備忘:
# curl <url> -o <file name>
# xz -dv XXX.xz

イメージ登録

(admin) # openstack image create \
--disk-format qcow2 \
--container-format bare \
--public \
--file ./CentOS-7-x86_64-GenericCloud
-1802.qcow2 CentOS-7-X86_64-1802

補足

  • SELinux Disableにしとく
  • いったんメモリ節約のため Swift , Magnum , Manila , Heatをstop and disable
  • デフォルトのflavorは粗いので自分で適当に作る
    • CentOS イメージはRAMサイズと ルートディスクサイズに注意(1GB RAM, 10GB Diskはあった方が良い)
  • メモリのオーバーコミット率あげとく
nova.conf
ram_allocation_ratio = 1.5 (=> 3.0
  • 永続ブロックデバイス使うときは、cinder-volume の pool 容量に注意(デフォで20GB)
  • Horizon UI からインスタンスあげると、ブロックデバイス作成が走る!?(CentOSイメージがHorizon UIからだとあがらない)

  • centos_openstack-home を解除(lv を消して centos_openstack-rootを拡張)

/et/fstab の /home エントリをコメントアウト 
#/dev/mapper/centos_openstack-home      /home   xfs     defaults        0       0

アンマウント
# umount /home

該当のlv削除
# lvremove /dev/centos_openstack/home
Do you really want to remove active logical volume centos_openstack/home? [y/n]: y
  Logical volume "home" successfully removed

「centos_openstack」VGの容量確認
# vgdisplay 

空いている分全部割り当てる
# lvextend -l +100%FREE /dev/centos_openstack/root
  Size of logical volume centos_openstack/root changed from 50.39 GiB (12900 extents) to <224.01 GiB (57346 extents).
  Logical volume centos_openstack/root successfully resized.

xfs ファイルシステム最大まで拡張(xfsはオンラインで拡張可能)
# xfs_growfs /dev/mapper/centos_openstack-root
meta-data=/dev/mapper/centos_openstack-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 58722304

確認(50GB => 最大に引き上げた)
# df -h /
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/centos_openstack-root  224G   14G  211G   6% /

xfs_growfs /mount/point -D size
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/storage_administration_guide/xfsgrow

オマケ

コマンドラインインスタンス起動

# openstack server create \
--flavor mid_c2_m2_d20 \
--image c06ed2c0-1b53-484f-beeb-04795038c6b3 \
--security-group default \
--key-name kurakey \
--network private \
centos-test

Nested KVM

インスタンス上でもKVMを使う予定があるので。

OpenStack ホスト側

KVM の Nested を有効にしておく。

  • /sys/module/kvm_intel/parameters/nested(デフォルト:N)
  • 起動しているインスタンスがあれば停止する(lsmod)
  • kvm_intel をアンロード(modprobe -r kvm_intel)
  • /etc/modprobe.d/kvm.conf 編集
/etc/modprobe.d/kvm.conf
# For Intel
options kvm_intel nested=1
  • kvm_intel をロード(modprobe kvm_intel)
  • /sys/module/kvm_intel/parameters/nested(Y)
  • nova.conf の cpu_mode を変更(host-passthrough)
  • nova-compute を再起動
  • インスタンスの起動

(注意):インスタンス側のCPU Mode(XML形式)をvirsh editによりhost-passthroughに変えてやるだけでは反映しなかった。

ついでにKVMのUI

評価検証時のデバッグするのにもあると便利。見たところ、WebVirtMgr というのが良さそうだったので入れてみる。

NestedしたインスタンスはCentOS7にしてたので、セットアップ手順は下記のページのまんま。
https://github.com/retspen/webvirtmgr/wiki/Install-WebVirtMgr

補足だけ

  • supervisord の部分は systemctl オペレーションにて
  • ハイパーバイザの登録をローカルソケット経由で
  • UIからのインスタンス起動は、Network , Storage 等を準備してから
  • 既存Flavor経由だと作った環境だと上手くいかなそうだったのでCustomでインスタンス作成試行

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0