OpenStack Swiftを簡単に試すにはKeystoneとSwiftが最低限必要です。この二つくらいなら公式の手順書に従ってマニュアルインストールしてもいいのですが、手を抜けるところはとことん抜きたい人なのでRDO Packstackを使って構築することにしました。
基本的にはここの手順のStep 4まで実施して、次の通りanswer-textを編集してデプロイするだけです。answer-textのdiffの結果を貼り付けてみます。
今回は日付つきの設定を使って、CentOS 7ベースでデプロイしました。もう少しはまるかなと思ったのですが、デプロイは数十分程度で終わりました。
--- packstack-answers-moto.txt 2015-10-15 19:08:42.774697473 +0900 +++ packstack-answers-20151015-190609.txt 2015-10-15 19:09:51.678852212 +0900 @@ -14,21 +14,21 @@ CONFIG_MARIADB_INSTALL=y # Specify 'y' to install OpenStack Image Service (glance). ['y', 'n'] -CONFIG_GLANCE_INSTALL=y +CONFIG_GLANCE_INSTALL=n # Specify 'y' to install OpenStack Block Storage (cinder). ['y', 'n'] -CONFIG_CINDER_INSTALL=y +CONFIG_CINDER_INSTALL=n # Specify 'y' to install OpenStack Shared File System (manila). ['y', # 'n'] CONFIG_MANILA_INSTALL=n # Specify 'y' to install OpenStack Compute (nova). ['y', 'n'] -CONFIG_NOVA_INSTALL=y +CONFIG_NOVA_INSTALL=n # Specify 'y' to install OpenStack Networking (neutron); otherwise, # Compute Networking (nova) will be used. ['y', 'n'] -CONFIG_NEUTRON_INSTALL=y +CONFIG_NEUTRON_INSTALL=n # Specify 'y' to install OpenStack Dashboard (horizon). ['y', 'n'] CONFIG_HORIZON_INSTALL=y @@ -37,7 +37,7 @@ CONFIG_SWIFT_INSTALL=y # Specify 'y' to install OpenStack Metering (ceilometer). ['y', 'n'] -CONFIG_CEILOMETER_INSTALL=y +CONFIG_CEILOMETER_INSTALL=n # Specify 'y' to install OpenStack Orchestration (heat). ['y', 'n'] CONFIG_HEAT_INSTALL=n @@ -59,12 +59,12 @@ # Specify 'y' to install Nagios to monitor OpenStack hosts. Nagios # provides additional tools for monitoring the OpenStack environment. # ['y', 'n'] -CONFIG_NAGIOS_INSTALL=y +CONFIG_NAGIOS_INSTALL=n # Comma-separated list of servers to be excluded from the # installation. This is helpful if you are running Packstack a second @@ -133,7 +133,7 @@ # Specify 'y' to enable the EPEL repository (Extra Packages for # Enterprise Linux). ['y', 'n'] -CONFIG_USE_EPEL=n +CONFIG_USE_EPEL=y # Comma-separated list of URLs for any additional yum repositories, # to use for installation.
Horizonをインストールしましたので、デプロイした後DashboardにアクセスするとSwiftが利用できます。今回のインストールではSwiftとKeystoneくらいしか入れていないので、他のコンポーネントに関するページを開くと色々エラーがでます。コマンドを使ってSwiftの操作も可能です。
RDO Packstackが構築したSwiftの構成だとループバックデバイスの小さいサイズのストレージが1つだけしか使えないので、データの冗長化を実現するために次のようにストレージを追加しました。
Swiftにストレージノードを追加する方法は弊社発行の「OpenStack構築手順書 Juno版」のp.87からの内容を参考にしました(ただしUbuntuでの手順なので、17-3のサービスをCentOS 7のサービスに置き換えています)。資料は以下からダウンロードできます。
http://enterprisecloud.jp/installguide-openstack/
8GBのディスクを二つ追加(大きいファイルの管理をしたければもっと大きいサイズを追加する) /dev/sdb /dev/sdc 起動してシステムにディスクが認識されていることを確認 dmesg |egrep ‘sdb|sdc’ 16-5(p.88) pvcreate /dev/sdb pvcreate /dev/sdc 16-5(p.88) vgcreate vg1 /dev/sdb vgcreate vg2 /dev/sdc 16-5(p.88) lvcreate -n /dev/vg1/xfs1 -l 100%FREE lvcreate -n /dev/vg2/xfs2 -l 100%FREE 16-5(p.88) mkfs.xfs /dev/vg1/xfs1 mkfs.xfs /dev/vg2/xfs2 16-5(p.88) mkdir -p /srv/node/xfs1 mkdir -p /srv/node/xfs2 16-5(p.88) /etc/fstabに書く /dev/vg1/xfs1 /srv/node/xfs1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 /dev/vg2/xfs2 /srv/node/xfs2 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 16-5(p.88) mount /srv/node/xfs1 mount /srv/node/xfs2 16-11(p.92) chown -R swift:swift /srv/node 16-12(p.92) mkdir -p /var/cache/swift chown -R swift:swift /var/cache/swift 17-1 リングファイルの作成(p.93) cd /etc/swift swift-ring-builder account.builder create 10 2 1 swift-ring-builder account.builder add r1z1-172.17.14.239:6002/xfs1 100 swift-ring-builder account.builder add r1z2-172.17.14.239:6002/xfs2 100 swift-ring-builder account.builder swift-ring-builder account.builder rebalance swift-ring-builder container.builder create 10 2 1 swift-ring-builder container.builder add r1z1-172.17.14.239:6001/xfs1 100 swift-ring-builder container.builder add r1z2-172.17.14.239:6001/xfs2 100 swift-ring-builder container.builder swift-ring-builder container.builder rebalance swift-ring-builder object.builder create 10 2 1 swift-ring-builder object.builder add r1z1-172.17.14.239:6000/xfs1 100 swift-ring-builder object.builder add r1z2-172.17.14.239:6000/xfs2 100 swift-ring-builder object.builder swift-ring-builder object.builder rebalance 17-3(p.94) systemctl restart memcached.service systemctl restart openstack-swift-proxy.service 17-5(p.95) swift-init all start SELinux関連の設定 restorecon -R /srv/node restorecon -R /var/cache/swift getsebool -a|grep swift swift_can_network -> off #これをオンにすれば良さそう setsebool -P swift_can_network on 確認 swift-get-nodes -a /etc/swift/account.ring.gz admin swift-get-nodes -a /etc/swift/container.ring.gz admin swift-get-nodes -a /etc/swift/object.ring.gz admin
17-1で設定している172.17.14.239は、Swiftを動かしたいサーバーのIPアドレスに置き換えてください。 ちなみにこんな感じで動いています。普段はCLIで操作しています。
環境構築はできたのにコンテナー(PCで言う所のフォルダーorディレクトリーに該当)を作ろうとしたらできなくて、なんでかなーと思ったらSELinuxだったというオチでした。一応手順にSELinuxの設定(無効化する手順じゃないですよ!)を追加したところ、上手く動くようになりました。
なんちゃってDropboxの出来上がりですね。