openstackをコマンドで攻める! 構築・運用とトラブル解決 -...
DESCRIPTION
講師:日本仮想化技術 遠山 日時:2014/06/05 タイトル:OpenStackをコマンドで攻める! 構築・運用とトラブル解決 概要: - OpenStackの構築方法 - 動作確認の方法 - トラブルシューティングTRANSCRIPT
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.d2014-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