Successfully reported this slideshow.

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

14,362 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. OpenStackをコマンドで攻める! 構築・運用とトラブル解決 日本仮想化技術株式会社 技術部 遠山 洋平 1
  2. 2. 本日の内容 ! 1. 自己紹介 2. OpenStackの構築方法 3. 動作確認の方法 4. トラブルシューティング 2
  3. 3. About Me 名前: 遠山 洋平 出身: 宮城県     VDI / 最近はOpenStack担当 [他の仕事] – 日経Linux執筆・連載(2011年5月〜) – 秀和システム「VMware 設計・運用・構 築プロフェッショナルガイド」 – 技評「VMwareポケットリファレンス」 3
  4. 4.   OpenStackの構築方法 4
  5. 5. OpenStackの構築方法 • 公式マニュアル • Ubuntu Juju + MAAS • RDO OpenStack • Mirantis Fuel etc.. ! • Chef, Puppet etc.. • DevStack 5 詳細 > http://www.openstack.org/software/start/
  6. 6. Ubuntu Juju • サーバーデプロイ・環境構築ツール • MAAS • OpenStack • HP Public Cloud • Amazon EC2 • Windows Azure • LXC 6
  7. 7. コマンド例 $ 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
  8. 8. MAAS(Metal As A Service) • 物理ノード管理ツール • Juju + MAASでOpenStackをデプロイ 8
  9. 9. MAAS管理画面 9
  10. 10. Juju + MAAS → OpenStack 10
  11. 11. 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
  12. 12. こんなの作りました # 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
  13. 13.   OpenStackの状態を確認 13
  14. 14. 動作状況の確認方法 • OpenStack Dashboardで確認 • コマンドで確認 14
  15. 15. コマンドのルール • COMPONENT option-list • COMPONENT option list - 一覧の表示 • COMPONENT option-show id • (もしくはCOMPONENT option-get id) - 詳細情報の表示 15
  16. 16. demo 16
  17. 17. OpenStackの構成
  18. 18. Keystone(認証) • 重要コンポーネント「Keystone」 ! • keystone token-get ユーザートークン • keystone service-list サービス • keystone user-list ユーザー • keystone tenant-list テナント 18
  19. 19. keystoneでエラー • Keystoneのログ • ログレベルをあげる • SQLサーバーログ • メッセージキューサービスのログ ! • Keystoneの設定 • Keystoneサービスの再起動 19
  20. 20. Glance(イメージ) • glance image-list – 登録済みイメージ一覧 • glance image-show “VM Name” – 登録済みイメージ詳細 20
  21. 21. Glanceでエラー • Glanceのログ • ログレベルをあげる • SQLサーバーログ • メッセージキューサービスのログ ! • Glanceの設定 • Glance関連サービスの再起動 21
  22. 22. Nova(OpenStack本体) • nova service-list - サービス一覧 • nova hypervisor-list - ハイパーバイザー一覧 • nova list • nova-manage vm list - インスタンス一覧 22
  23. 23. Neutron(ネットワーク) • neutron agent-list – エージェントの表示 • neutron floatingip-list – 確保済みFloating IPのリスト • neutron net-list – ネットワークのリスト • neutron subnet-list – サブネットのリスト 23 → 次ページに続きます
  24. 24. • neutron port-list – ネットワークポートの表示 • neutron security-group-role-list – セキュリティグループの設定 24
  25. 25. Neutronでエラー • Neutronのログ • ログレベルをあげる • SQLサーバーログ • メッセージキューサービスのログ ! • Nova-Computeとネットワークノードの 設定 • Neutron関連サービスの再起動 25
  26. 26. demo 26
  27. 27. RDO OpenStack • openstack-status 27
  28. 28. トラブルシューティング編 • 私が構築時にはまったところ 28
  29. 29. パッケージミス (症例1) 29
  30. 30. 症例1 • UbuntuでOpenStack Icehouse RC1 • 公式マニュアル参考にインストール • glance-manage db_syncでエラー発生 ! ! ! • 公式のソースを持ってきて実行→正常 30 CRITICAL glance [-] AttributeError: ‘NoneType' object has no attribute ‘drivername'
  31. 31. 原因 • Ubuntuパッケージのミス – /etc/glance/schema-image.jsonがディレクト リーに無いため – パーミッションがおかしい問題もあった模様 ! • バグ報告(LP1307518)→RC2で修正済 31
  32. 32. 症例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'
  33. 33. 原因 • Ubuntuパッケージのミス – default.yamlファイルの欠損 ! • バグ報告(LP1284471)→修正済 33
  34. 34. ここまでのまとめ 1. 正常に動かないときはログ確認 2. 公式のソースを展開して実行 3. バグは報告する 34
  35. 35. RDOで構築したIcehouseで Nova-Computeが正常動作しない (症例2) 35
  36. 36. 症例 • XenServer上にRDOでIcehouseを構築 • Fedora 20を利用 • コンピュートサービスがFailed • libvirtdが動かない 36
  37. 37. 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
  38. 38. 原因 • Fedoraパッケージのバグでした – Bug 1098376 - libvirtd fails to start on Xen instances • libvirt-1.1.3.5-2で修正済 ! • CentOS 6.5では動作 – qemu 38
  39. 39. インスタンスが 外部ネットワークにつながらない! (症例3) 39
  40. 40. 症例 1. ソフトウェアアップデート適用 2. 再起動 3. インスタンス起動 4. ネットワーク不通 40 udhcpc (v1.20.1) started Sending discover... Sending discover… Sending discover...
  41. 41. 実行するコマンド ip route 41
  42. 42. 解決方法(一例) • ip route delete 42
  43. 43. 解決方法(一例) • 問題解決 43
  44. 44. 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. 45. 原因が分からないときは どうする? ネットワークにつながらない! 45
  46. 46. まず実行するのは ip addr show 46
  47. 47. ネットワークノードで実行 • br-int,br-tunなどがあることを確認 47
  48. 48. Fedora 20の場合 • ホスト再起動  ↓ • ネットワーク接続不可  ↓ • ifdown , ifup or • networkサービスを再起動 48 詳細 > http://openstack.redhat.com/Fedora_20_with_existing_network
  49. 49. 次に実行するのは ovs-vsctl 49
  50. 50. ネットワークノードで実行 • GREの場合 50
  51. 51. コンピュートノードで実行 • GREの場合 51
  52. 52. ブリッジの状態を確認 • ブリッジの登録を確認 ! ! ! • ブリッジとデバイスの接続を確認 52 # ovs-vsctl list-br br-ex br-int br-tun # ovs-vsctl list-ports br-ex eth0 (略)
  53. 53. その他 53
  54. 54. Network Name Spaceの確認 ip netns exec 54
  55. 55. ip netns execの利用法 • ip netns • 仮想ルーターと仮想DHCPサーバーを 確認 55
  56. 56. qrouterの確認(1) • ifconfigでIPアドレスを確認 56
  57. 57. qrouterの確認(2) • qrouterからPing • 外部PCからqrouterにPing 57
  58. 58. qdhcpの確認(1) • ifconfigでIPアドレスを確認 58
  59. 59. qdhcpの確認(2) • qdhcpからインスタンスにPing 59
  60. 60. それでもつながらない • Floating IPを付け直し • インスタンス再起動 • neutron-openvswitch-agent再起動 • ネットワークノード再起動 • ログを見る • 各種設定の見直し 60
  61. 61. その他注意すべきポイント 61
  62. 62. PDFからのコピペ • 手順通り実行 • エラー ! • PDFから複数行に渡る文字列をコピペ する  ↓ • 折り返し部分に謎のスペースが • コマンド失敗 62
  63. 63. Adobe Reader 63
  64. 64. Mac OS X プレビュー 64
  65. 65. キーペアがインポートできない • ssh-keygenコマンドで鍵を作成 • インポート実行 • エラー • 何回やってもエラー ! • エディタ設定が原因 65
  66. 66. 原因 • viエディタで開いてコピペ • .vimrc設定の問題 66 set formatoptions=q 自動改行オフ set textwidth=0 長い文章の自動折り返しをしない set linebreak ワードラップを有効
  67. 67. • linebreak オン ! ! ! ! • linebreak オフ 67
  68. 68. まとめ • OpenStackコマンドで確認 • ログを確認 • 設定を確認 • ログレベルを上げる • ログを確認 • マニュアルを疑え • 自分の環境を疑え 68

×