Upload
virtualtech-japan-inc
View
19.686
Download
0
Embed Size (px)
DESCRIPTION
日時:2014/02/06 タイトル:RDOを使ったOpenStack Havana - Neutron 構築編 概要: OpenStack最新情報セミナーのために用意していた資料「RDOを使ったOpenStack Havana - Neutron 構築編」を公開いたします。 - RHEL系のLinuxをインストール - RDOリポジトリーの追加 - RDOでOpenStackをインストール - RDOでOpenStackをカスタムインストール - コマンドでOpenStackを設定 補足資料はこちらにあります。 http://www.slideshare.net/VirtualTech-JP/140204-rdo-quickstart
Citation preview
RDOを使った OpenStack HavanaNeutron 構築編
日本仮想化技術株式会社
2
OpenStack構成図
RDOとは
• Red HatベースプラットフォームでOpenStackを利用するユーザーのためのコミュニティ
• OpenStack環境をクイックインストール
• Packstackを利用• Pythonで書かれている
お品書き
1. RHEL系の Linuxをインストール2. RDOリポジトリーの追加3. RDOで OpenStackをインストール4. RDOで OpenStackをカスタムインストール
5. コマンドで OpenStackを設定
事前準備
ソフトウェア要件
• Red Hat Enterprise LinuxおよびRHEL派生 OS 6.4以降
• Fedora 19以降
ハードウェア要件
• CPU 2Core以上– VT-x / AMD-V
• メモリー 4GB以上• 最低 1つの NIC
– Privateネットワーク用は loインターフェイスを利用可能。
• インターネットにアクセスできる環境
LinuxのインストールSTEP1
Linuxをインストール
• 次のバージョン以降の OS– RHEL 6.4– Fedora 19– CentOS 6.4– Scientific Linux 6.4
※本例では Scientific Linux 6.5をインストールしています。
あらかじめ設定# vi /etc/sysctl.conf
#設定を確認net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 0net.bridge.bridge-nf-call-iptables = 0net.bridge.bridge-nf-call-arptables = 0#設定を追記net.ipv4.conf.all.forwarding = 1net.ipv4.conf.all.rp_filter = 0#設定を変更net.ipv4.conf.default.rp_filter = 0
# sysctl -e -p /etc/sysctl.conf(設定を反映)
IPアドレスの固定化
• eth0に固定 IPアドレスを割り当て
RDOリポジトリーの追加STEP2
リポジトリーの追加
• 公式の手順に従ってコマンドを実行
• アップデートの実施# yum install -y http://rdo.fedorapeople.org/openstack-havana/rdo-release-havana.rpm# yum -y update
パッケージのインストール
• Packstackおよび必要パッケージをインストール
# yum install -y openstack-packstack python-netaddr
SELinux
• 公式の手順にしたがってオフにします。
• /etc/selinux/configファイルSELINUX=permissiveの設定も行う。
# setenforce 0# getenforce Permissive
RDOで OpenStackをインストール
STEP3
OpenStackをインストール
• インストールするには次のコマンドを実行するだけ
• しばらく待つ• ログインしてみる
# packstack --allinone
OpenStack ログイン画面
Web Interfaceで操作
デフォルトの構成
• プライベートネットワーク– 10.0.0.0/24
• パブリックネットワーク–デモ用–外部接続不可
• ユーザー– demo– admin
RDOで OpenStackをカスタムインストール
STEP4
カスタムインストールの方法
• packstackはアンサーファイルを用意することでカスタム可能
• packstackコマンド実行に指定–カスタム構成で OpenStackが構築できる
実行前に
• 必要パッケージがインストール済みか確認
# rpm -q openstack-packstackopenstack-packstack-2013.2.1-0.29.dev956.el6.noarch
アンサーファイルの作成
• packstackコマンドでアンサーファイルを作成
※アンサーファイルはバージョンによって追加があるので使い回す際は注意
# packstack --gen-answer-file=answer.txt(answer.txtという名前のファイルを作成する場合 )
アンサーファイル例# vi answer.txt[general]CONFIG_MYSQL_INSTALL=yCONFIG_GLANCE_INSTALL=yCONFIG_CINDER_INSTALL=yCONFIG_NOVA_INSTALL=yCONFIG_NEUTRON_INSTALL=yCONFIG_HORIZON_INSTALL=yCONFIG_SWIFT_INSTALL=y(略 )CONFIG_NOVA_COMPUTE_PRIVIF=loCONFIG_NOVA_NETWORK_PRIVIF=loCONFIG_NOVA_NETWORK_PUBIF=eth0CONFIG_KEYSTONE_ADMIN_PW=adminCONFIG_PROVISION_DEMO=n
アンサーファイルの編集
• 自分の環境に合わせて修正• 最低設定するのは
–導入コンポーネント– Private用 NIC– Public用 NIC– adminユーザーのパスワード
OpenStackをインストール
• インストールするには次のコマンドを実行するだけ
• しばらく待つ
# packstack --answer-file=/root/answers.txt
ブリッジの設定STEP6
NICの設定変更
• eth0を public用にする• br-ex用のポートとして eth0を使う• Neutron Pluginの設定
※具体的な設定は次のスライドで
ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0ONBOOT=yesHWADDR=xx:xx:xx:xx:xx:xx TYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-ex
ifcfg-br-ex
# vi /etc/sysconfig/network-scripts/ifcfg-br-exDEVICE=br-exONBOOT=yesDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=192.168.1.140 # Old eth0 IP NETMASK=255.255.255.0 # Your netmaskGATEWAY=192.168.1.1 # Your gatewayDNS1=8.8.8.8 # DNS ServerDNS2=8.8.4.4
Neutron Pluginの設定変更
• 以下を追記する
• 一旦 OpenStackホストを再起動
# vi /etc/neutron/plugin.ini
(略 )
network_vlan_ranges = physnet1bridge_mappings = physnet1:br-ex
ovs-vsctlコマンドで確認
• br-exに eth0が追加されたことを確認# ovs-vsctl show
016948ac-32eb-4dc3-89bc-81b96a343d06 Bridge br-ex Port phy-br-ex Interface phy-br-ex Port br-ex Interface br-ex type: internal Port "qg-2aaf420a-c9" Interface "qg-2aaf420a-c9" type: internal Port "eth0" Interface "eth0"
コマンドで OpenStackを設定STEP7
実施項目
• OS設定の次は「 OpenStack」の設定1. ルーターを作成2. ネットワークを作成3. ネットワークサブネットを作成4. 外部と内部ネットワークの接続5. OpenStack利用ユーザーの追加
事前準備
• keystonercを読込む
• 設定を確認
[root@openstack]# source keystonerc_admin[root@openstack ~(keystone_admin)]#
コマンド 確認できる項目keystone tenant-list テナントneutron net-list ネットワークneutron router-list ルーター
ルーターの作成
• 次例のように実行
# neutron router-create router1(router1を作成 )
# neutron router-list(コマンドを実行して確認 )
Publicネットワークの作成• 次例のように登録
• TENANT-IDは keystone tenant-listコマンドで確認
• 「 --router:external=True」オプションで「外部ネットワーク」として登録
# neutron net-create public --tenant-id TENANT-ID --router:external=True# neutron net-list(コマンドを実行して確認 )
Privateネットワークの作成
• 次例のように登録
• TENANT-IDは keystone tenant-listコマンドで確認
• 「 --shared」オプションで他のユーザーとネットワークを共有できる
# neutron net-create demo-net --tenant-id TENANT-ID --shared# neutron net-list(コマンドを実行して確認 )
サブネットの登録
• ネットワークにサブネットを登録
# neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=192.168.1.241,end=192.168.1.254 --gateway=192.168.1.1 public 192.168.1.0/24
Privateネットワークに追加
• 次の構成で Privateネットワークにサブネットを追加してみよう
項目 設定
名前 demo-net_subnet
ネットワーク demo-net
DHCP 有効
IPアドレス割り当て範囲 10.0.0.0/24
ゲートウェイ 10.0.0.1
【問題】
正解は
• 次例のようにサブネットを登録
※アロケーションプールはゲートウェイを考慮すること
# neutron subnet-create --name demo-net_subnet --enable_dhcp=True --allocation-pool=start=10.0.0.2,end=10.0.0.254 --gateway=10.0.0.1 demo-net 10.0.0.0/24
ゲートウェイの設定
• 作成したルーター( router1)とパブリックネットワークを接続
※ROUTER-IDは neutron router-listコマンド、PUBLIC-NETWORK-IDは neutron net-listコマンドで確認できます。
# neutron router-gateway-set ROUTER-ID PUBLIC-NETWORK-ID
外部と内部ネットワークの接続
• プライベートネットワークを割り当てたインスタンスが Floating IPを割り当てられたときに外に出られるようにするために「ルーターにインターフェイスの追加」を行います
コマンドの実行
• 次例のように実行
※ROUTER-IDは neutron router-listコマンド、サブネットは neutron subnet-listコマンドで確認できます。
• 実行例# neutron router-interface-add b195f4e5-c8f5-4dbd-b265-14e1736faefb subnet=demo-net_subnet
# neutron router-interface-add ROUTER-ID INTERFACE
ユーザーの追加
• OpenStackの利用ユーザーを追加
• パラメータは --helpを参照• テナントは keystone tenant-listコマンドで確認できる
# keystone user-create --name demo --pass demo --tenant services --enabled true
コマンドで OpenStackを操作STEP8
実施項目
1. セキュリティグループの設定2. インスタンスの起動
セキュリティグループの設定
• neutron security-group-listコマンドで対象を確認
• neutron security-group-rule-createコマンドで定義
# neutron security-group-rule-create --protocol icmp GROUP-ID# neutron security-group-rule-create --protocol tcp --port-range-min FROM-PORT --port-range-max TO-PORT GROUP-ID# neutron security-group-rule-create --protocol udp --port-range-min FROM-PORT --port-range-max TO-PORT GROUP-ID
インスタンスの起動
• インスタンス起動に必要な情報を確認– nova flavor-list– nova image-list– neutron net-list
• nova listコマンドでインスタンスの稼働状況を確認
コマンドの実行
• 次例のように実行
• 実行例
# nova boot --flavor FLAVOR-NAME --image IMAGE-NAME --nic net-id=NETWORK-ID VMNAME
# nova boot --flavor m1.tiny --image CirrOS--nic net-id=10af861b-e640-4db8-ad56-a4d398d2b66c VM1
Novaの設定変更STEP9
設定変更のポイント
• 仮想化として QEMUを利用するように設定される場合がある
• 速さはQEMU < KVM• libvirt_typeの設定を確認
対応しているか確認
• Linux KVMに対応しているか確認
# lsmod | grep kvmkvm_intel 54285 6 kvm 332980 1 kvm_intel(Intel CPUの場合 )kvm 332980 1 kvm_amd(AMD CPUの場合 )
nova.conf設定の確認
• libvirt_typeの設定を確認• 対応なら kvmが選択されているはず# vi /etc/nova/nova.conf
(略)libvirt_type=kvm#libvirt_type=qemu( qemuから kvm利用に設定変更)
Enjoy!STEP9
インスタンスを操作
FAQ
ステータスの確認について
• ステータスを確認するには? ↓1. サービスの稼働状況を確認
– lsof , ps ax– nova-manage service list – neutron agent-list など
2. openstack-statusコマンドの実施– ただし、 Fedoraベースで構築した場合はうまく表示できません
サービスが動かない( 1)
• アップデート後ホストを再起動したところ、うまく動かなくなりました。 ↓• カーネルを更新してホストを再起動すると br-exがリセットされる
• 再度 packstackを実行する必要がある
サービスが動かない( 2)
• Fedoraベースで構築したところ、再起動したら色々なサービスが動かなくなりました ↓• packstackを再実行すれば復旧?
– CentOS や Scientific Linuxをオススメします。
キーボード関連• 日本語キーボードが使えない ↓• コンピュートノードの nova.confに追記
– vnc_keymap=ja と設定– 「 openstack-nova-compute」サービスを再起動
• 日本語キーボードが使えるかどうかはOS次第– Cirrosは英語キーマップで利用可– 多くの場合 loadkeys jp106コマンドで利用可
パスワード認証したい
• こう設定してインスタンスを起動!
マルチノード構成にするには
• 次の手順を参考に– http://openstack.redhat.com/Adding_a_compute_node
• 手動で構築したほうが簡単?– http://www.server-world.info/query?
os=CentOS_6&p=openstack_havana&f=10
参考 URLなど
• RDO Quick Start– http://openstack.redhat.com/Quickstart
• RDO Quick Start Neutron– http://openstack.redhat.com/Neutron-Quickstart
• Neutronと外部ネットワーク– http://openstack.redhat.com/
Neutron_with_existing_external_network
• RDO ドキュメント一覧– http://openstack.redhat.com/Docs