Manila/docs/Manila Developer Setup Fedora19
本文档描述了如何在虚拟机上安装支持 Manila 的 devstack。
推荐的虚拟机要求
- 4G 内存
- 20G 可用磁盘空间
这些说明在 Fedora 19 (f19) 虚拟机上进行了测试。但是,以下说明也适用于 Ubuntu 虚拟机,但 Ubuntu 用户可能不需要某些说明。因此,每当怀疑说明是 Fedora 特有的时,就会说明为 Fedora 特有。
安装 DevStack
以下是集成了 Manila 的 DevStack 仓库。除了安装其他 OpenStack 服务外,它还会从 https://github.com/stackforge/manila 拉取并安装 Manila,这是最新的 Manila 仓库。
$ git clone git@github.com:bswartz/devstack.git $ cd devstack
注意:最近,Manila 仓库已经集成到 DevStack master 中,您也可以使用它。因此,以下某些说明可能不再适用。请期待指令的相应更改。
您可能需要进行以下更改。如果使用 F19,则需要进行 ./lib/manila 中的更改。否则,安装 OpenStack 服务的 stack.sh 脚本会将 manila 脚本安装到 /usr/bin 中,但稍后会尝试从 /usr/local/bin 中执行 manila 脚本。
diff --git a/lib/manila b/lib/manila
index abd0158..7f75ebc 100644
--- a/lib/manila
+++ b/lib/manila
@@ -48,7 +48,7 @@ MANILA_SERVICE_PROTOCOL=${MANILA_SERVICE_PROTOCOLS
if [[ -d $MANILA_DIR/bin ]]; then
MANILA_BIN_DIR=$MANILA_DIR/bin
else
- MANILA_BIN_DIR=/usr/local/bin
+ MANILA_BIN_DIR=/usr/bin
fi
SHARE_GROUP=${SHARE_GROUPtack-shares}
@@ -456,4 +456,4 @@ function stop_manila() {
}
localrc 中的更改
- 如果使用 F19,则需要将 Rabbit 服务的密码更改为 'guest'。 新安装的 rabbitmq 会创建一个用户 'guest',密码为 'guest'。而由于某种原因,DevStack 无法按用户期望的方式设置用户 'guest' 的密码。
- 可以设置额外的变量来记录正在运行的 OpenStack 服务的屏幕。这尤其有用,因为默认屏幕的滚动缓冲区非常有限。
- Manila-LVM 共享的 backing 文件大小可以从 8G 减少到 2G。
diff --git a/localrc b/localrc
index 05ea5cd..4474425 100644
--- a/localrc
+++ b/localrc
@@ -1,9 +1,15 @@
DATABASE_PASSWORD=rengen
-RABBIT_PASSWORD=rengen
+RABBIT_PASSWORD=guest
SERVICE_TOKEN=rengen
SERVICE_PASSWORD=rengen
ADMIN_PASSWORD=rengen
+# Enable Logging
+LOGFILE=/opt/stack/logs/stack.sh.log
+VERBOSE=True
+LOG_COLOR=True
+SCREEN_LOGDIR=/opt/stack/logs
+
@@ -66,7 +72,7 @@ MANILA_SERVICE_PORT_INT=18776
VOLUME_BACKING_FILE_SIZE=${VOLUME_BACKING_FILE_SIZE:-1048M}
-SHARE_BACKING_FILE_SIZE=${SHARE_BACKING_FILE_SIZE:-8400M}
+SHARE_BACKING_FILE_SIZE=${SHARE_BACKING_FILE_SIZE:-2048M}
MANILA_SECURE_DELETE=$CINDER_SECURE_DELETE
运行 stack.sh。
$ ./stack.sh
请注意,上述脚本会将 SELinux 设置为 Fedora 用户的 Permissive 模式。但是,此设置无法在重启后保留。要永久更改 SELinux 设置,您需要编辑 /etc/sysconfig/selinux 文件,使其如下所示
# 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
检查 SELinux 的状态
$ getenforce
使用 Nova 启动 Guest 实例
确保每次开始(例如,在系统重启后)使用 OpenStack 运行 httpd、rabbitmq-server(或其他 AMQP)、mysqld(db)等服务。对于 F19,您可以通过以下方式执行此操作:
$ systemctl status rabbitmq-server
如果它们没有运行,您应该启动并运行它们
# systemctl restart rabbitmq-server
并且不要忘记检查 SELinux 是否设置为 Permissive 模式 :)
现在您需要设置 keystone 登录凭据,才能使用各个 OpenStack 服务的 CLI。这可以通过 sourcing openrc 文件来实现,分别使用用户名和租户名。并且 stack.sh 已经创建了用户(admin 和 demo)和租户(admin 和 demo),您可以使用它们。因此,您可以执行以下操作:
$ source openrc admin admin
如果您在运行 stack.sh 后重启了,请启动(如果已重启)并通过运行 rejoin-stack.sh 脚本与各个 OpenStack 服务进行交互。
$ ./rejoin-stack.sh
您需要 Nova guests 来测试 Manila 共享是否可访问。使用轻量级镜像(CirrOS)启动实例是合理的。Csaba Henk 整理了一个带有 nfs 内核支持、nfs-utils、rpcbind 和 strace 的轻量级镜像:Csaba Henk:https://mega.co.nz/#!B91VUA6Z!eNB2BSW4p1o8lRqaPeaIek4g_J1LJL_SY2OymVnurlc
使用从上述链接下载的镜像创建 glance-image
$ glance image-create --name="Cirros 0.3.1" --disk-format=qcow2 \ --container-format bare < cirros-git-disk.qcow2
列出 glance 镜像,并检查是否可用
$ glance image-list
添加 keypair 列表
$ nova keypair-add --pub_key ~/.ssh/id_rsa.pub mykey
设置网络规则以允许 ssh 和 ping 访问 guest VM
$ nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 $ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
启动 nova 实例。请使用 glance image-list 的 image-id
$ nova boot --flavor m1.tiny --image 00aa37a3-0bec-4140-bbf1-617fc3b3da63 \ --key_name mykey --security_group default myvm0
检查 guest 实例的状态
$ nova list
通过 ssh 登录到 VM。guest VM 的 cirros 密码是 cubswin:)
$ ssh cirros@<the ip of the vm, usually a private IP, unless setup>
在 guest vm 内部。如果您需要成为 root
$ sudo -s $ id
目前,Manila 不支持多租户(代码正在审查中),网络模型是简单的 FlatNetwork 模型。有关更多信息,请参见
- https://wiki.openstack.org/wiki/Shares_Service
- https://wiki.openstack.org/wiki/Manila_Networking
检查 Manila 共享驱动程序及其辅助程序是否如下所示,否则设置它们
$ cat /etc/manila/manila.conf | grep share_driver share_driver = manila.share.drivers.lvm.LVMShareDriver $ cat /etc/manila/manila.conf | grep share_lvm_helpers share_lvm_helpers = CIFS=manila.share.drivers.lvm.CIFSHelper,NFS=manila.share.drivers.lvm.NFSHelper
通过从默认的 stack-shares 卷组中雕刻 1G 逻辑卷来创建 1G LVM Manila NFS 共享
$ manila create --name myshare0 NFS 1
检查共享是否可用
$ manila list
允许正在运行的实例访问共享
$ manila allow-access <share-id> ip <instance-id>
您现在应该能够 ssh 到您的 guest VM,并检查 NFS 共享
$ showmount -e
如果一切顺利,您可以将 NFS 共享挂载到您的 guest 上。如果不是,最可能的原因是 Nova 设置的防火墙规则在与您对抗。解决此问题的肮脏方法是在您的 host VM 中停止并禁用防火墙守护程序,然后重新启动 Nova 服务。
# systemctl stop firewalld # systemctl disable firewalld