OpenStack(1)TripleOを用いてMitakaをインストールする

インストーラ

OpenStackのインストール方法は、選択したコンポーネントを1つずつインストールしていく方法と、インストーラを使って自動的にシステム構築を行う方法とがある。OpenStackのインストーラは複数提供されていて、代表的なものにpackstackや、TripleO(Openstack on OpenStack)などが存在する。packstackは、answerファイルと呼ばれる設定ファイルに内容を記述するだけで非常に簡単に環境構築が可能である一方で、高可用性(HA)設定や負荷分散設定などには対応していない。そのためkiloからは「OSP director」(RedHat系ではTripleO)と呼ばれるインストーラが新たに公開され複雑な設定も可能となっている。

TripleO(OpenStack on OpenStack)

TripleOは、OpenStack on OpenStackの名の通り、OpenStack上でOpenStackの構築を行う。クラウド構築基盤である下レイヤ部分をUnderCloud、コントローラノードやコンピュートノードなどが存在する上レイヤ部分をOverCloudと呼ぶ。UnderCloudは、通常directorと呼ばれる環境構築用の端末1台のみで構成される。

資料

現在のところTripleOを扱った資料はほとんど存在しない。公式ページで提供されているドキュメントが最も分りやすい。


環境構築

UndercloudおよびOvercloudの設定にあたって必要となる環境の設定を行う。
デフォルト値が定められており、それ以外の値にする場合は変更が必要となるので注意すること。
詳細は、Environment Setupを参照する。

  • CentOS 7(64bit版)のインストール
  • インストール用ユーザ(stack)の作成
sudo useradd stack
sudo passwd stack  # specify a password
echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
  • インストール用ユーザ(stack)でログイン
su - stack
  • 必要なリポジトリの有効化
sudo yum -y install epel-release
sudo curl -o /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7/current-tripleo/delorean.repo
sudo curl -o /etc/yum.repos.d/delorean-current.repo https://trunk.rdoproject.org/centos7/current/delorean.repo
sudo /bin/bash -c "cat <<EOF>>/etc/yum.repos.d/delorean-current.repo

includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-cloud-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,tripleo-common,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules
EOF"
sudo curl -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
  • instack-undercloudのインストール
sudo yum install -y instack-undercloud
  • 環境変数の設定
export NODE_DIST=centos7
  • 仮想環境構築スクリプトの実行
    全ての処理が終了すると、作成された仮想環境のIPアドレスが表示される。
cd ~
instack-virt-setup

instack vm IP address is 192.168.122.83
You can connect by running:
ssh root@192.168.122.83
And then su to the stack user:
su - stack

KVM ゲストOSの管理

Undercloudは、KVM上の仮想環境にて構築されている。
仮想環境へのログインは、SSHもしくはvirshのコンソールを使うとよい。

ゲストOSの起動終了

  • ゲストOSの確認
virsh list --all
  • ゲストOSの起動
virsh start DOMAIN_NAME_OR_UUID
  • ゲストOSの終了
virsh shutdown DOMAIN_NAME_OR_UUID
virsh destroy DOMAIN_NAME_OR_UUID
  • ゲストOSの削除
virsh undefine DOMAIN_NAME_OR_UUID

設定の確認

  • 設定の出力
virsh dumpxml DOMAIN_NAME_OR_UUID
  • 設定の変更
virsh edit DOMAIN_NAME_OR_UUID

コンソールログイン

コンソールでログインする場合は、以下の設定が含まれているか確認する。

virsh edit DOMAIN_NAME_OR_UUID

<device>
  <serial type='pty'>
    <target port='0'/>
  </serial>
  <console type='pty'>
    <target type='serial' port='0'/>
  </console>
</device>
  • コンソールでログイン
virsh console DOMAIN_NAME_OR_UUID

Undercloudの構築

Undercloudのインストールと、コンポーネントのアップデートを行う。
詳細は、Undercloud Installationを参照のこと。

  • 仮想環境にインストール用ユーザ(stack)でログイン
ssh root@192.168.122.83
su - stack
  • SELinuxの設定をpermissiveに変更
vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
  • 必要なリポジトリの有効化
sudo yum -y install epel-release
sudo sed -i 's/\[delorean\]/\[delorean-current\]/' /etc/yum.repos.d/delorean-current.repo
sudo /bin/bash -c "cat <<EOF>>/etc/yum.repos.d/delorean-current.repo

includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-cloud-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,tripleo-common,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules
EOF"
sudo curl -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
  • yumリポジトリの優先度設定
    Deloreanリポジトリが、RDOリポジトリよりも優先されるように設定
sudo yum -y install yum-plugin-priorities
  • TripleOクライアントのインストール
sudo yum install -y python-tripleoclient
  • Undercloudののインストール
openstack undercloud install

#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################

Overcloudのデプロイ

環境変数の読み込み

source stackrc
export NODE_DIST=centos7
export USE_DELOREAN_TRUNK=1
export DELOREAN_TRUNK_REPO="https://trunk.rdoproject.org/centos7/current-tripleo/"
export DELOREAN_REPO_FILE="delorean.repo"

OpenStack Summit Tokyo 2015(2)日本におけるOpenStackの現状

OpenStack Sumit Tokyo 2015「日本でのOpenStack、企業の導入状況と今後の活用予測」(2015/10/27 17:30-)より。OpenStackは今後も活用が広がっていくだろうとのこと。

日本におけるOpenStackの現状

大企業の6-7割、中小企業の2-3割が仮想化技術を用いたサーバ管理を行っている。このうちのほとんどがVMWare社製品を用いた仮想化である。 OpenStackは楽天やYahoo!Japanなどの大手が徐々に導入を始めている。日本は技術に関心がある層が非常に厚いが、品質を求めすぎるため に導入までに非常に時間が掛かるのがネック。また、SIerにシステム開発を依存しているのが日本企業の特徴である。とはいえ、日本の大企業は皆こぞって AWSを使っている。AWSは可用性や耐障害性があるのでAWSを使うことで仮に基幹系の一部のアプリが止まってしまうリスクが増加したとしてもそれを超えるメリットがAWSにはある、と言い切る 企業すらある。これからプライベートクラウドの利用も進み、OpenStackの利用も増えていくのではないか。

日本の企業のOpenStack導入事例

株式会社DeNAでは、事業の多角化を進めており非常に多くの案件が動いているため、多くのサーバのリソースを必要としている。これをOpenStack等の仮想化、自動化技術で解決したい。ネットワークに関してもネットワーク専任部署を設けてお任せするのではなく、自分たちできちんとネットワークも使いこなしたい。AWSは安価だと言われることもあるが必ずしもそうではない。大きなオンプレミス環境を持っているところは、オンプレミス環境の方がコストメリットがある。OpenStackは確かにバグも多いが、数年前に比べて大きく改善している。DeNAでは4-5名の担当者でOpenStackの運用からリサーチまで行っている。OpenStackは複雑なシステムではあるが、これを利用するほうが敷居が低い。例えば、スタートアップ系の企業は、AWSは料金が高すぎて使いづらいと言っている。

株式会社サイバーエージェントは、OpenStackを用いてサーバを300台以上を構築しており主にアドテク系で仕様している。OpenStackはバージョンアップが非常に早く、2世代前のバージョンをサポートしないのでどのように対応していくべきか迷っている。稼働させながらバージョンアップすることも可能ではあるが、難しいので結局新しいサーバをセットアップさせて移行している。AWSなどのバプリッククラウドよりも安価にそして性能よくしたいと考えている。運用担当者は現状3名だがもう少し欲しいところ。

その他のセッション

Getting Started With OpenStack, Hands-On Lab
spotzz/openstack2015-gitandgerrit・GitHub

PayPal’s Cloud Journey From Folsom to Kilo

Clusters, Routers, Agents and Networks: High Availabirity in Neutron
fghaas/openstacksummit2015-tokyo-neutron-ha・GitHub

OpenStack Summit Tokyo 2015(1)キーノート

日本初開催となるOpenStack Sumit Tokyo 2015に参加してきました。会場は品川のグランドプリンス新高輪、国際館パミール。OpenStackがいかに急速に発展し熱気あるプロジェクトであるか、ということを肌で感じたカンファレンスでした。

キーノート

まずはキーノートから。数日前にリリースされたOpenStack Libertyの話から企業の導入事例まで。

Keynotes Day 2

OpenStack導入事例

Lithiumは、マイクロサービスの即時実行サービスを提供している。AWS, OpenStack関係なくデプロイ、実行が可能である。ワニを撃ち落とすこんなゲームも、プログラムを変更してデプロイすればすぐにサービスに反映させることができる。

Yahoo! Japanは、月間650億PVある日本最大のポータルサイトを運用している。うちモバイルからが319億PVである。OpenStackを用いて100ラック分、4000台のマシンで運用している。天災アプリを提供していることもあって、地震発生の数十秒後にアクセスにスパイクが立つ。エンタプライズ市場でOpenStackは利用されるのかという議論があるが、Yahoo! Japanではアプリケーションの実装次第で活用できると考えている。同じAPIを提供することでデータセンタの抽象化ができるのが大きなメリットで、使っているハードウェアのライフサイクルを明確化し、移行計画を立てることも可能となる。2013年より前はIaaSを自分たちで作っており、全てのアプリケーションを自分たちで作成する必要があったが、OpenStack導入後は汎用的な部分はコミュニティにお任せして、特殊な機能の実装に集中することができるようになった。

Keynotes Day 2

Cloud Hostingを行っているbitnamiは、シャドークラウドをいかに無くすかという点が重要であると考えている。俊敏性や使い勝手がよくないと皆勝手に別のクラウドサービスを利用してしまう。

NTT Resonantは、日本で第3位のポータルサイトを運営している。月間PVは10億PVで、1800VM、4000Hypervisorを使用している。アップデートの時に障害ポイントになり得るので、カスタマイズして使うということはしていない。また、Puppet、Zabbixの利用など、既存の運用やツールは極力活用している。

Booth Crawl Happy Hour

OpenStack Liberty

10月16日に12番目のリリースとなるLibertyがリリースされた。今回からOpenStackは、主要機能であるCoreと周辺機能Big Tentにプロジェクトが分割された。成熟し開発が落ち着いたプロジェクトもあればまだまだ発展途上のプロジェクトもあるが、中でも現在最も急激に進化を遂げているのはネットワーク機能を提供するNeutronである。SDN市場は昨年比2倍で成長しているが、NeutronにはSDNコントローラも実装されSDNに対応している。また今回、コンテナのネットワークを接続する「Project Kuryr」が登場する。

Lunch Buffet