2人でOpenStackを開発環境に導入した話

0
-1

Published on

リブセンスの開発環境に2人でOpenStackを導入した話

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2人でOpenStackを開発環境に導入した話

  1. 1. 2人でOpenStackを開発環境に導入した話 湖山 翔平 / Shohei Koyama @sion_cojp
  2. 2. 自己紹介 湖山 翔平 / @sion_cojp 27歳 元FPSプロゲーマーでアジアチャンピオン qiitaをよく書いてます http://qiita.com/sion_cojp インフラエンジニア 11月からWebアプリケーションエンジニア 株式会社リブセンス(2年目)
  3. 3. 遡ると1年前
  4. 4. 1年前のお話 開発者⇨インフラに VM構築依頼 開発者とインフラがスペック調整相談
  (めちゃくちゃ持て余すスペックでの依頼がよく来て枯渇していたから) インフラが空いてるKVMホストを確認 シェルスクリプトでVM構築 + セットアップ 引き渡し 1年前の開発環境運用 1台出来るのに1時間 当時のインフラメンバー3, 4人ほど。
 (現在は6名) 多大な運用コストを割かれていた
  5. 5. 最近のテクノロジーでなんとかしたい! ということで
  6. 6. こんなメンバーで導入しました 湖山 翔平 中西 晶大
  7. 7. リブセンスのインフラ 本番環境:オンプレで150台ホスト VMで400台くらい 開発環境:オンプレで50台ホスト と Vagrant その他パブリッククラウドも利用
  8. 8. OpenStackを導入して良かったこと 今までインフラチームがVMを構築してたのが、
 開発者がGUI操作で自由に作ったり壊せるようになった chef, packerを使ってセットアップ済みイメージを用意することにより、
 セットアップの待ち時間がなくなった 全体的なコミュニケーションコストが減った VMの提供スピードが上がった イメージをopenstackからraw(sparse)にしたので、
 VM自体のスピードがあがった
  9. 9. 開発者がVMが欲しいと、インフラに連絡 開発者とインフラがスペック調整相談
  (めちゃくちゃ持て余すスペックでの依頼がよく来て枯渇していた) インフラが空いてるKVMホストを確認 シェルスクリプトでVM構築 + セットアップ 引き渡し
 割り当てられたリソース内で、開発者が自由に作成 1台出来るのに1時間 1年前の運用 現在の運用 1台出来るのに8分
  10. 10. イメージのスピード 測定方法  http://qiita.com/sion_cojp/items/bef955bba3dbf9d603f8 runtimeは30秒に
  11. 11. OpenStackを導入して悪かったこと 仮想ネットワークに詳しい人が居ないと運用辛い OpenStack の学習コストが高すぎる 障害対応の知見を持ってないので、
 すぐ復旧ってことには、あまりならないので辛い バージョンのアップデートが大変
 (まだやったことはないが、大変なのが分かる)
  12. 12. 先に総括 結果、開発環境には導入して良かった事が大きいです。 (運用コストが減ったのが大きい) ただ本番環境の OpenStack 化 は弊社では
 現状デメリットの方が大きいため、実施しないと判断 学習コストの高さ + 運用負荷の増大 障害時、スムーズに復旧出来るかどうか OpenStack 自体のバージョンアップが難しい
  13. 13. OpenStackに変わってから自分たちで必要なときに
 インスタンスが用意できるのでオペレーションが楽になった
 OpenStack(リモート開発環境) と vagrant box(ローカル開発環境)の
 両方があって開発環境の冗長化ができている
 最後の setup shell の実行が面倒
 (後に登場しますが、下記を実行するスクリプトを手動で叩いてもらってます)
  ・パーティションの拡張
  ・ユーザのホームディレクトリ作成 開発者からの評判 Good BAD
  14. 14. ここからは、導入の際に苦労したお話
  15. 15. 使ってるコンポーネント neutron : ネットワーク
 Nova : 仮想マシンの作成、削除 KeyStone : 認証 Glance : イメージ管理 Horizon : ダッシュボード(GUIツール) Cinder : ストレージ イメージ作成:
  16. 16. 1. パーティションの可変 Glanceに登録しているイメージが7Gだとして、
 それを元に 20G のボリュームを作っても 
 rootパーティションが7Gまでしか読まなかった。
  17. 17. 1. パーティションの可変 - 解決編 これをインスタンス作成後、 叩かせてます cloud-init, cloud-utils, cloud-utils-growpart
 パッケージを内包化し、
 growpartコマンドで可変するようにしました
 (ただし、コマンド打った後初回再起動必要)
  18. 18. 2. Cinderでtargetdじゃなく、NFSを採用した理由 こんなページが誕生。
  19. 19. 2. 何が起こったの? Cinderのtargetがエラーになって起動出来なくなる トリガーは不明。おそらくtarget.serviceのバグ? ボリューム作る ⇨ インスタンス作る ⇨ 15分くらい放置 ⇨ エラー Cinderのtargetをrestartすると、target,initiatorの情報が消える restart後、target lsを打つと何も設定が入ってない状態になる。 手動で追加すれば接続出来る Computeでiscsiのsessionが残った状態になる。そしてlogoutできない Computeで、下記エラーログ多発
 "Dec 12 11:58:21 dev1128 iscsid: connect to 172.16.4.145:3260 failed (No route to host)" 手動で貼ると解決されます multiple-storageの設定じゃないとエラーを吐いて、
 Cinderのtargetをrestartすると永遠にインスタンス起動出来なくなる 下記エラーを吐きまくる
 Dec 16 10:53:08 localhost kernel: connection10:0: detected conn error (1020)
 Dec 16 10:53:09 localhost iscsid: conn 0 login rejected: target error (03/01) インスタンス削除で解決
  20. 20. 2. 何が起こったの? 結局、OpenStack IRCで質問したり、
 Ask OpenStackで聞いてもわからずNFSに。
  21. 21. 3. 仮想マシンが重たい問題 OpenStack 環境と非 OpenStack 環境(一般的なKVM環境)で
 同じイメージを使用して、同じリソースを割り当てているに
 OpenStackのインスタンスが重い
  22. 22. 3. 仮想マシンが重たい問題 - 解決 <domain type='kvm'> , <domain type='qemu'> の違い kvm に変えたら早くなりました
  23. 23. 4. ネットワーク設計が大変だった どう現状のインフラを保持しつつ、OpenStackを食い込ませるか、 ネットワークの切り方を考えるのが大変だった 下記は議論してた時の様子
  24. 24. 4. ネットワーク設計が大変だった 開発環境はこのようなネットワーク構成に。
  25. 25. アドバイス OpenStackはインストールドキュメント通りやれば
 構築出来ます
 わからなかったらAsk OpenStackで尋ねると良いですよ
 それでも分からなかったらOpenStack導入してる人たちに コンタクト取ってみるのも良いですよ 全ノードshutdown、からの復旧テストは必ずやりましょう
  26. 26. 各コンポーネントが死んだ時の再起動コマンド 便利
  27. 27. 全コンポーネントが全てshutdownされても復旧出来るか 各コンポーネントの再構築 Cinderでのボリューム拡張、縮小 作成したネットワーク、サブネット、仮想ルータの操作 dhcp_agent が外部 DNS を参照し forward する設定 packstackでAll-In-One構成を構築 OpenStack API やった検証項目
  28. 28. Controllerが保持してるDBの冗長化 network nodeの冗長化(DVR, L3-HA) スナップショットの取得 rabbit mqの冗長化 残ってる検証項目 Must Should
  29. 29. サーバを有り余らせてる方々! 皆さんも(まずは)開発環境にOpenStackを是非!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×