SlideShare a Scribd company logo
OpenStackをコマンドで攻める!
構築・運用とトラブル解決
日本仮想化技術株式会社
技術部 遠山 洋平
1
本日の内容
!
1. 自己紹介
2. OpenStackの構築方法
3. 動作確認の方法
4. トラブルシューティング
2
About Me
名前: 遠山 洋平
出身: 宮城県
    VDI / 最近はOpenStack担当
[他の仕事]
– 日経Linux執筆・連載(2011年5月〜)
– 秀和システム「VMware 設計・運用・構
築プロフェッショナルガイド」
– 技評「VMwareポケットリファレンス」
3
  OpenStackの構築方法
4
OpenStackの構築方法
• 公式マニュアル
• Ubuntu Juju + MAAS
• RDO OpenStack
• Mirantis Fuel etc..
!
• Chef, Puppet etc..
• DevStack
5
詳細 > http://www.openstack.org/software/start/
Ubuntu Juju
• サーバーデプロイ・環境構築ツール
• MAAS
• OpenStack
• HP Public Cloud
• Amazon EC2
• Windows Azure
• LXC
6
コマンド例
$ juju deploy juju-gui ; juju expose juju-gui
(JuJu-GUIのデプロイ)
$ juju deploy wordpress mysite
$ juju deploy mysql mysite-db
$ juju add-relation mysite mysite-db
(mysiteとmysite-dbを接続)
$ juju expose mysite
!
$ juju add-unit -n1 mysite
(スケールアウトの実施)
$ juju deploy haproxy mysite-ha
(HAProxyのデプロイ)
$ juju add-relation mysite-ha mysite ; juju expose mysite-ha
7
MAAS(Metal As A Service)
• 物理ノード管理ツール
• Juju + MAASでOpenStackをデプロイ
8
MAAS管理画面
9
Juju + MAAS → OpenStack
10
RDO
• Red Hat Enterprise Linuxユーザーの
OpenStack構築を支援するコミュニティ
• RHEL, CentOS, Fedora
• 単体構成なら15分でデプロイできる
11
# setenforce permissive
# yum -y install http://rdo.fedorapeople.org/rdo-
release.rpm
# yum install -y openstack-packstack
# packstack --allinone
こんなの作りました
# git clone https://github.com/ytooyama/rdo-centos6-installtool.git
# cd rdo-centos6-installtool
# chmod +x centos6-rdo.sh
# ./centos6-rdo.sh
Do you want to Copy the sysctl.conf (y/n)?
(デフォルトのカーネルパラメータを上書きするか)
Do you want to Set SELinux (y/n)?
(SELinuxを設定変更するか)
Set the Repo (havana/icehouse/skip)?
(インストールするOpenStackのバージョンを指定)
Do you want to Custom installation of RDO OpenStack (y/n)?
(RDO OpenStackでカスタムインストールするか)
12
詳細 > https://github.com/ytooyama/rdo-centos6-installtool
  OpenStackの状態を確認
13
動作状況の確認方法
• OpenStack Dashboardで確認
• コマンドで確認
14
コマンドのルール
• COMPONENT option-list
• COMPONENT option list
- 一覧の表示
• COMPONENT option-show id
• (もしくはCOMPONENT option-get id)
- 詳細情報の表示
15
demo
16
OpenStackの構成
Keystone(認証)
• 重要コンポーネント「Keystone」
!
• keystone token-get ユーザートークン
• keystone service-list サービス
• keystone user-list ユーザー
• keystone tenant-list テナント
18
keystoneでエラー
• Keystoneのログ
• ログレベルをあげる
• SQLサーバーログ
• メッセージキューサービスのログ
!
• Keystoneの設定
• Keystoneサービスの再起動
19
Glance(イメージ)
• glance image-list
– 登録済みイメージ一覧
• glance image-show “VM Name”
– 登録済みイメージ詳細
20
Glanceでエラー
• Glanceのログ
• ログレベルをあげる
• SQLサーバーログ
• メッセージキューサービスのログ
!
• Glanceの設定
• Glance関連サービスの再起動
21
Nova(OpenStack本体)
• nova service-list
- サービス一覧
• nova hypervisor-list
- ハイパーバイザー一覧
• nova list
• nova-manage vm list
- インスタンス一覧
22
Neutron(ネットワーク)
• neutron agent-list
– エージェントの表示
• neutron floatingip-list
– 確保済みFloating IPのリスト
• neutron net-list
– ネットワークのリスト
• neutron subnet-list
– サブネットのリスト
23
→ 次ページに続きます
• neutron port-list
– ネットワークポートの表示
• neutron security-group-role-list
– セキュリティグループの設定
24
Neutronでエラー
• Neutronのログ
• ログレベルをあげる
• SQLサーバーログ
• メッセージキューサービスのログ
!
• Nova-Computeとネットワークノードの
設定
• Neutron関連サービスの再起動
25
demo
26
RDO OpenStack
• openstack-status
27
トラブルシューティング編
• 私が構築時にはまったところ
28
パッケージミス
(症例1)
29
症例1
• UbuntuでOpenStack Icehouse RC1
• 公式マニュアル参考にインストール
• glance-manage db_syncでエラー発生
!
!
!
• 公式のソースを持ってきて実行→正常
30
CRITICAL glance [-] AttributeError: ‘NoneType' object has no attribute
‘drivername'
原因
• Ubuntuパッケージのミス
– /etc/glance/schema-image.jsonがディレクト
リーに無いため
– パーミッションがおかしい問題もあった模様
!
• バグ報告(LP1307518)→RC2で修正済
31
症例2
• UbuntuでOpenStack Havana
• 公式マニュアル参考にインストール
• heat-engineサービスでエラー発生
!
!
!
• 公式のソースを上書きして実行→正常
32
2014-02-25 14:52:01.567 8263 ERROR heat.engine.resources [-] Failed to read /
etc/heat/environment.d

2014-02-25 14:52:01.567 8263 ERROR heat.engine.resources [-] [Errno 2] No
such file or directory: '/etc/heat/environment.d'
原因
• Ubuntuパッケージのミス
– default.yamlファイルの欠損
!
• バグ報告(LP1284471)→修正済
33
ここまでのまとめ
1. 正常に動かないときはログ確認
2. 公式のソースを展開して実行
3. バグは報告する
34
RDOで構築したIcehouseで
Nova-Computeが正常動作しない
(症例2)
35
症例
• XenServer上にRDOでIcehouseを構築
• Fedora 20を利用
• コンピュートサービスがFailed
• libvirtdが動かない
36
libvirtdが動いていない!
37
(DOMU-Fed20)# systemctl status libvirtd.service
libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled)
Active: inactive (dead) since 火 2014-05-20 20:23:20 JST; 3s ago
Docs: man:libvirtd(8)
http://libvirt.org
Process: 2619 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=exited, status=0/
SUCCESS)
Main PID: 2619 (code=exited, status=0/SUCCESS)
!
5月 20 20:23:19 icecom systemd[1]: Started Virtualization daemon.
5月 20 20:23:20 icecom libvirtd[2619]: libvirt version: 1.1.3.5, package: 1.fc20 (Fedora
Project, 2014-05-03-21:46:09, buildvm-16.phx2.fedoraproject.org)
5月 20 20:23:20 icecom libvirtd[2619]: cannot initialize libxenlight context, probably not
running in a Xen Dom0, disabling driver
5月 20 20:23:20 icecom libvirtd[2619]: Initialization of LIBXL state driver failed: Unknown
problem
5月 20 20:23:20 icecom libvirtd[2619]: Driver state initialization failed
原因
• Fedoraパッケージのバグでした
– Bug 1098376 - libvirtd fails to start
on Xen instances
• libvirt-1.1.3.5-2で修正済
!
• CentOS 6.5では動作
– qemu
38
インスタンスが
外部ネットワークにつながらない!
(症例3)
39
症例
1. ソフトウェアアップデート適用
2. 再起動
3. インスタンス起動
4. ネットワーク不通
40
udhcpc (v1.20.1) started
Sending discover...
Sending discover…
Sending discover...
実行するコマンド
ip route
41
解決方法(一例)
• ip route delete
42
解決方法(一例)
• 問題解決
43
Ubuntuでの回避策
• /etc/network/interface
44
auto eth0
iface eth0 inet static
pre-up service openvswitch-switch start || true
address 192.168.0.9
netmask 255.255.255.0
auto br-ex
iface br-ex inet static
pre-up service openvswitch-switch start || true
address 10.0.0.9
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.1
auto eth1
iface eth1 inet manual
pre-up service openvswitch-switch start || true
up ip address add 0/0 dev $IFACE
up ip link set $IFACE up
down ip link set $IFACE down
原因が分からないときは
どうする?
ネットワークにつながらない!
45
まず実行するのは
ip addr show
46
ネットワークノードで実行
• br-int,br-tunなどがあることを確認
47
Fedora 20の場合
• ホスト再起動
 ↓
• ネットワーク接続不可
 ↓
• ifdown , ifup
or
• networkサービスを再起動
48
詳細 > http://openstack.redhat.com/Fedora_20_with_existing_network
次に実行するのは
ovs-vsctl
49
ネットワークノードで実行
• GREの場合
50
コンピュートノードで実行
• GREの場合
51
ブリッジの状態を確認
• ブリッジの登録を確認
!
!
!
• ブリッジとデバイスの接続を確認
52
# ovs-vsctl list-br
br-ex
br-int
br-tun
# ovs-vsctl list-ports br-ex
eth0
(略)
その他
53
Network Name Spaceの確認
ip netns
exec
54
ip netns execの利用法
• ip netns
• 仮想ルーターと仮想DHCPサーバーを
確認
55
qrouterの確認(1)
• ifconfigでIPアドレスを確認
56
qrouterの確認(2)
• qrouterからPing
• 外部PCからqrouterにPing
57
qdhcpの確認(1)
• ifconfigでIPアドレスを確認
58
qdhcpの確認(2)
• qdhcpからインスタンスにPing
59
それでもつながらない
• Floating IPを付け直し
• インスタンス再起動
• neutron-openvswitch-agent再起動
• ネットワークノード再起動
• ログを見る
• 各種設定の見直し
60
その他注意すべきポイント
61
PDFからのコピペ
• 手順通り実行
• エラー
!
• PDFから複数行に渡る文字列をコピペ
する
 ↓
• 折り返し部分に謎のスペースが
• コマンド失敗
62
Adobe Reader
63
Mac OS X プレビュー
64
キーペアがインポートできない
• ssh-keygenコマンドで鍵を作成
• インポート実行
• エラー
• 何回やってもエラー
!
• エディタ設定が原因
65
原因
• viエディタで開いてコピペ
• .vimrc設定の問題
66
set formatoptions=q 自動改行オフ
set textwidth=0 長い文章の自動折り返しをしない
set linebreak ワードラップを有効
• linebreak オン
!
!
!
!
• linebreak オフ
67
まとめ
• OpenStackコマンドで確認
• ログを確認
• 設定を確認
• ログレベルを上げる
• ログを確認
• マニュアルを疑え
• 自分の環境を疑え
68

More Related Content

OpenStackをコマンドで���める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月