あらすじ
案件の異動に伴い、OpenStackを使っていた現場から離れることになりました。
忙しいあまり背景や仕組みを調べずに業務に使っていたので、整理として概要を調べてみました。
目次
OpenStackとは
簡単に言うと…
・クラウドコンピューティングのためのオープンソースソフトウェア
・IaaSを構築するためのソフトウェアの集まり
である。
沿革
・2010年7月にプロジェクト開始
2012年9月にOpenStackFoundationが設立
2019年現在、最新版は「Queens」と呼ばれている
(次回のリリース名はRockyの予定)
特徴
・Amazon Web Serviceに似た機能を持つ。
→ パブリッククラウドに必要な機能が盛り込まれている
例)複数のユーザーの利用、
ユーザーごとの利用状況の測定
OpenStackを使用している企業
AT&T、ドイツテレコム、KT、インテル、
SONY(SCE America)、Paypal、Yahoo!、HP、GMOインターネット、Rackspace、SoftLayer、MercadoLibre、Sina、WebEX、
サイバーエージェント、国立情報学研究所、NECTER、CERN
活用例
KT:商用ストレージサービス
SONY:ゲーム開発環境をAWSからOpenStackへ移行
GMOインターネット:お名前.com VPSサービスをOpenStackで構築・運用
Paypal:vCloudからOpenStackにサービス基盤を移行
Sina(Weiboの運営会社):自社サービスのAP基板をOpenStack 上で運用
サイバーエージェント:Amebaの基盤をVMwareベースから置き換え
クラウドで実行されるアプリケーションの特徴
(AWSを代表とするパブリッククラウド)
インフラ環境の自動操作を目的とした設計
・アプリケーションのSLA≠サーバ(仮想マシン)のSLA
→一部のマシンが停止しても、アプリケーションは停止しない
・必要に応じて仮想マシンを追加・削除する機能が前提
→性能要件の変化に対応
→仮想マシンの障害時などに新しいマシンを追加して対応が可能
・仮想マシンのライフサイクルは数時間~数か月
→1つの仮想マシンを永続的に利用することを前提としない
・永続データをアプリケーションと分離
→オブジェクトストアに保存して、仮想マシンとデータを分離
OpenStackの特徴
・APIで操作できる「Programmable Infrastructure」の提供
既存のGUI、ワークフローに縛られたくないユーザー層の獲得
プログラムによるインフラ環境の自動構築・変更に対応
・スケーラビリティを意識した疎結合アーキテクチャ
コンピューティングノードの追加が容易
コントローラの負荷分散が可能
設計、運用管理にはこれまでと違うノウハウが必要
IaaSを構築するためのソフトウェアの集まり
主な機能
・CPU、メモリ、ストレージ、NWなどのリソースの仮想化
・利用者の権限に基づいてリソースを割り当てる
・操作するGUI画面の提供
・役割ごとにコンポーネントをもつ「モジュラーアーキテクチャ」を採用している。
OpenStackのコンポーネント(とAWSの類似機能)
Nova:仮想マシンの管理(Amazon EC2)
Glance:マシンイメージの管理(AMI)
Neutron:ネットワーク機能(AmazonRoute 53,VPC,ELB)
Cinder:ブロックストレージ機能(Amazon EBS)
Swift:オブジェクトストレージ機能(Amazon S3)
Keystone:認証機能(IAM)
Horizon:Web管理機能。GUI(マネジメントコンソール)
OpenStackの操作
操作方法は大きく分けて3つ
①REST形式のAPIをコールする方法
②REST APIをラップ下コマンドラインを利用する方法
③ダッシュボード機能でブラウザから操作する方法
→仕事で主に用いたのは②REST APIをラップしたコマンドラインを利用する方法でした。
特徴として以下があります。
・OpenStackコマンドを使用して操作する。
→コンポーネント毎にコマンドが用意されている。
ユーザーがどのコンポーネントを利用するかを意識できる
仮想マシンの操作を行うときは、novaコマンド、
NW関連の操作を行うときはneutronコマンドを利用
・helpコマンドを利用することで、オプションを確認できる
以下、仮想マシンの立ち上げによく用いたコマンドです。
仮想マシンを作るとき
# openstack server create
仮想マシン(VM01)を停止・起動するとき
# nova start VM01
# nova stop VM01
現状の仮想マシンの状態をイメージとして保存するとき
# nova image-create [指定のマシン] [イメージファイル名]
# nova image-create VM01 VM01_Image
保存したイメージをファイルとして保存するとき
# glance image-download --file [ファイル名] [イメージのID]
# glance image-download --file VM01_Image [VM01_ImageのID]
NWを作成するとき
# neutron net-create
サブネットを作成するとき
# neutron subnet-create
参考資料
OpenStackクラウド基盤構築・ハンズオンセミナー講義資料
http://enakai00.hatenablog.com/entry/20140106/1388978670
OpenStackによる、実践オンプレミスクラウド
https://www.slideshare.net/thatsdone/q-con-tokyonttdataopenstackdist2?qid=3207b677-5c4e-4dc1-80de-c2ea356e1526&v=qf1&b=&from_search=9
OpenStack勉強会 ― slideshare
https://www.slideshare.net/obara13/open-stack-16166193?qid=3207b677-5c4e-4dc1-80de-c2ea356e1526&v=qf1&b=&from_search=4