openstack-train安装 · 2022年10月12日 0

手动部署OpenStack Train双节点-安装cinder服务-搭建存储节点

通常存储节点会采用独立的服务器,但这样OpenStack云计算平台就至少需要3台服务器才能搭建。所以本小节任务采用计算节点来代替存储节点,以实现搭建双节点OpenStack云计算平台的目标

一、搭建存储节点

1、为计算节点增加硬盘

省略。。。。。。。

2、创建卷组

(1)查看系统硬盘挂载情况
通过“lsblk”命令可以看到系统中所有硬盘(块设备)的挂载信息。

[root@compute ~]# lsblk
NAME                  MAJ:MIN   RM   SIZE   RO      TYPE    MOUNTPOINT
sda                         8:0     0    100G   0       disk
├─sda1                      8:1     0    1G             0       part        /boot
└─sda2                      8:2     0        98G    0       part
├─centos-root       253:0       0        90G    0       lvm         /
└─centos-swap   253:1       0    8G         0       lvm     [SWAP]
sdb                     8:16    0        20G    0       disk
sr0                         11:0        1    973M   0       rom

从结果中可以看到刚新添加的硬盘名为“sdb”,还没有进行分区和挂载。该硬盘在Linux中的对应文件为“/dev/sdb”。
(2)创建LVM物理卷组
卷组是若干个物理卷组成的一个整体,对于用户来说,卷组就是一个大的磁盘,便于重新划分使用。
第1步,将硬盘初始化为物理卷。
通过“pvcreate”命令将物理硬盘初始化为物理卷,以便LVM使用。

[root@compute ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

第2步,将物理卷归并为卷组。
LVM卷组的创建命令为“vgcreate”,它的用法如下。
vgcreate <卷组名> <物理卷1> <物理卷2> ……
由于本项目只创建了一个物理卷,因此用下面的方法用该卷生成卷组,卷组取名为“cinder-volumes”。

[root@compute ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created

第3步,配置LVM卷组扫描的设备。
首先,打开LVM的配置文件。

[root@compute ~]# vi /etc/lvm/lvm.conf

然后,修改配置文件的“devices”部分,添加一个接受“/dev/sdb”磁盘并拒绝其他设备的过滤器。

devices {
filter = [ "a/sdb/","r/.*/"]
……
}

代码中“a”表示接受,“r”表示拒绝。
(3) 启动LVM元数据服务
LVM在做磁盘扫描时将查找所有相关物理卷,并读取卷组元数据,这个过程非常耗时。如果将卷组元数据一次性读入缓存,则不用每次都做这个耗时的扫描。lvmetad就是LVM中用于处理元数据缓存的服务,通过以下方法启动它。
第1步,设置开机启动服务。

[root@compute ~]# systemctl enable lvm2-lvmetad

第2步,立即启动服务。

[root@compute ~]# systemctl start lvm2-lvmetad

3、安装和配置存储节点

(1)安装Cinder相关软件包
用如下方法在计算节点安装Cinder相关软件包。

[root@compute ~]# yum -y install openstack-cinder targetcli python-keystone

这个安装命令共安装了3个软件包“openstack-cinder”“targetcli”“python-keystone”。其中“openstack-cinder”是Cinder的软件包;“targetcli”是一个命令行工具,用于管理Linux的存储资源;“python-keystone”是与Keystone的连接插件。
(2)将配置文件去掉注释和空行
第1步,备份配置文件。

[root@compute ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.bak

第2步,去掉所有注释和空行,生成新的配置文件。

[root@compute ~]# grep -Ev '^$|#' /etc/cinder/cinder.bak > /etc/cinder/cinder.conf

(3)编辑新的配置文件
第1步,打开配置文件进行编辑。

[root@compute ~]#  vi /etc/cinder/cinder.conf

第2步,修改“[database]”部分,实现与数据库“cinder”连接。

[database]
connection = mysql+pymysql://cinder:000000@controller/cinder

第3步,[DEFAULT][keystone_authtoken]部分,实现与Keystone交互。

[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000

第4步,修改“[oslo_concurrency]”部分,配置锁路径。

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp

第5步,修改“[DEFAULT]”部分,实现与消息队列和Glance的连接。

[DEFAULT]
transport_url = rabbit://rabbitmq:000000@controller:5672
glance_api_servers = http://controller:9292

第6步,修改“[DEFAULT]”部分,并增加“[lvm]”部分以设置LVM。

[DEFAULT]
enabled_backends = lvm
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm

注意:配置文件中“volume_group”的值应和“创建LVM物理卷组”部分创建的卷组名一致。

4、启动计算节点上的Cinder服务

由于本项目是利用计算节点充当存储节点,因此在计算节点操作。
首先,设置开机启动服务。

[root@compute ~]# systemctl enable openstack-cinder-volume target

然后,立即启动服务。

[root@compute ~]# systemctl start openstack-cinder-volume target 

二、检验cinder服务

1.查看存储服务列表
在控制节点用以下代码查看Cinder服务中各个模块的服务状态。

[root@controller ~]# openstack volume service list 
+------------------------------+------------------------+---------+------------------+-----------+---------------------------------------------+
| Binary                          | Host                 | Zone   | Status                | State    | Updated At                                |
+------------------------------+------------------------+--------+-------------------+-----------+----------------------------------------------+
| cinder-scheduler        | controller           | nova   | enabled       | up   | 2021-10-16T16:54:46.000000    |
| cinder-volume           | compute@lvm      | nova   | enabled       | up       | 2021-10-16T16:54:45.000000    |
+------------------------------+------------------------+---------+-------------------+-----------+---------------------------------------------+  

可以看到,在控制节点能够发现“cinder-volume”“cinder-scheduler”两个模块的状态(State)是启动(up)。
2.通过Dashboard查看卷概况
用Dashboard登录OpenStack后,如果Cinder服务正常,就可以看到在左侧导航栏中会出现【卷】选项,另外在【概况】中可以看到“卷”“卷快照”“卷存储”这3个饼图。

三、用Cinder创建卷

1.使用命令模式创建卷
第1步,在控制节点发起命令,创建一个8 GB的卷,取名为“volume1”。

[root@controller ~]# openstack volume create --size 8 volume1

第2步,查看卷列表。

[root@controller ~]# openstack volume list 
+-----------------------------------------------------------+-------------+--------------------+---------+------------------+
| ID                                                                    | Name       | Status       | Size  | Attached to |
+-----------------------------------------------------------+-------------+--------------------+---------+------------------+
| 2403c9de-ed37-467d-a6df-1e12ca2b2161    | volume1   | available    |   8  |                     |
+-----------------------------------------------------------+-------------+--------------------+---------+------------------+  

在列表中可以看到存在一个名为“volume1”的卷,状态(Status)为可用(available),大小为8GB。
2.使用Dashboard创建卷
第1步,进入卷列表。登录Dashboard以后,依次单击【卷】菜单→【卷】


第2步,创建卷。首先,在【卷】界面中单击【创建卷】按钮。然后,在【卷名称】文本框中填写卷的名称;【描述】文本框为选择项;在【卷来源】下拉列表中选择【没有源,空白卷】;在【类型】下拉列表中选择【DEFAULT】;在【大小】文本框中填写卷的容量大小,注意所有卷的容量总和不要超过卷组的容量。最后,单击【创建卷】按钮完成创建卷操作。创建成功后就能在【卷】界面中看到刚创建的卷的信息了。