安装和配置存储节点¶
先决条件¶
在存储节点上安装和配置块存储服务之前,您必须准备存储设备。
注意
在存储节点上执行以下步骤。
安装支持的实用程序包。
安装 LVM 包
# zypper install lvm2
(可选) 如果您打算使用非原始镜像类型,例如 QCOW2 和 VMDK,请安装 QEMU 包
# zypper install qemu
注意
某些发行版默认包含 LVM。
创建 LVM 物理卷
/dev/sdb# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
创建 LVM 卷组
cinder-volumes# vgcreate cinder-volumes /dev/sdb Volume group "cinder-volumes" successfully created
块存储服务在此卷组中创建逻辑卷。
只有实例才能访问块存储卷。但是,底层操作系统管理与卷关联的设备。默认情况下,LVM 卷扫描工具会扫描
/dev目录中的块存储设备,这些设备包含卷。如果项目在其卷上使用 LVM,则扫描工具会检测到这些卷并尝试对其进行缓存,这可能会导致底层操作系统和项目卷出现各种问题。您必须重新配置 LVM,使其仅扫描包含cinder-volumes卷组的设备。编辑/etc/lvm/lvm.conf文件并完成以下操作在
devices部分,添加一个过滤器,该过滤器接受/dev/sdb设备并拒绝所有其他设备devices { ... filter = [ "a/sdb/", "r/.*/"]
过滤器数组中的每个项目都以
a表示 接受 或r表示 拒绝,并包含设备名称的正则表达式。数组必须以r/.*/结尾,以拒绝任何剩余的设备。您可以使用 vgs -vvvv 命令来测试过滤器。警告
如果您的存储节点在操作系统磁盘上使用 LVM,您还必须将关联的设备添加到过滤器中。例如,如果
/dev/sda设备包含操作系统filter = [ "a/sda/", "a/sdb/", "r/.*/"]
同样,如果您的计算节点在操作系统磁盘上使用 LVM,您还必须修改这些节点上的
/etc/lvm/lvm.conf文件中的过滤器,以仅包含操作系统磁盘。例如,如果/dev/sda设备包含操作系统filter = [ "a/sda/", "r/.*/"]
安装和配置组件¶
安装软件包
# zypper install openstack-cinder-volume tgt
编辑
/etc/cinder/cinder.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] # ... connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
将
CINDER_DBPASS替换为您为块存储数据库选择的密码。在
[DEFAULT]部分中,配置RabbitMQ消息队列访问[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
将
RABBIT_PASS替换为您为RabbitMQ中的openstack帐户选择的密码。在
[DEFAULT]和[keystone_authtoken]部分中,配置身份服务访问[DEFAULT] # ... auth_strategy = keystone [keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = CINDER_PASS
将
CINDER_PASS替换为您在身份服务中为cinder用户选择的密码。注意
注释掉或删除
[keystone_authtoken]部分中的任何其他选项。在
[DEFAULT]部分中,配置my_ip选项[DEFAULT] # ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
将
MANAGEMENT_INTERFACE_IP_ADDRESS替换为存储节点上管理网络接口的 IP 地址,通常对于 示例架构 中的第一个节点为 10.0.0.41。在
[lvm]部分,使用 LVM 驱动程序、cinder-volumes卷组、iSCSI 协议和适当的 iSCSI 服务配置 LVM 后端[lvm] # ... volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes target_protocol = iscsi target_helper = tgtadm
在
[DEFAULT]部分,启用 LVM 后端[DEFAULT] # ... enabled_backends = lvm
注意
后端名称是任意的。作为示例,本指南使用驱动程序的名称作为后端的名称。
在
[DEFAULT]部分,配置 Image 服务 API 的位置[DEFAULT] # ... glance_api_servers = http://controller:9292
在
[oslo_concurrency]部分中,配置锁路径[oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp
使用以下数据创建
/etc/tgt/conf.d/cinder.conf文件include /var/lib/cinder/volumes/*
完成安装¶
启动块存储卷服务,包括其依赖项,并配置它们在系统启动时启动
# systemctl enable openstack-cinder-volume.service tgtd.service # systemctl start openstack-cinder-volume.service tgtd.service