第七步(1):安装openstack-cinder服务-存储节点 openstack-storage controller节点进行验证

https://docs.openstack.org/cinder/train/install/cinder-storage-install-rdo.html #存储节点部署

找一台服务器,作为cinder的储存节点;cinder的控制节点只负责接收用户请求及创建卷时的调度,数据是存放在cinder存储节点上的

1、yum install centos-release-openstack-train.noarch -y  #安装openstack T版yum源

2、给存储节点单独添加一块磁盘,需要在这块磁盘上创建pv和vg

3、echo "- - -" > /sys/class/scsi_host/host0/scan
   echo "- - -" > /sys/class/scsi_host/host1/scan
   echo "- - -" > /sys/class/scsi_host/host2/scan
#针对host0、1、2这3个总线进行动态扫描,识别新添加的磁盘,这样就不需要重启服务器了

4、fdisk -l   #查看是否有新添加的sdb磁盘

5、yum install lvm2 device-mapper-persistent-data -y
#安装lvm管理工具

6、systemctl enable lvm2-lvmetad.service

7、systemctl start lvm2-lvmetad.service

8、pvcreate /dev/sdb  #将新添加的sdb磁盘创建成一个pv(物理卷)

9、vgcreate cinder-volumes /dev/sdb  #针对sdb物理卷创建名为cinder-volumes的vg(卷组)

10、vim /etc/lvm/lvm.conf
devices {
...
filter = [ "a/sdb/", "r/.*/"]    
#a表示允许,r表示拒绝
#只允许lvm服务访问sdb中的数据,不允许lvm服务访问其他磁盘,这也间接实现了openstack创建的虚拟机只能访问sdb中的数据,不能访问其他磁盘
#设置只允许实例访问sdb逻辑卷中的数据;如果不配置的话,本机的其他服务也有可能会访问sdb逻辑卷中的数据

11、systemctl restart lvm2-lvmetad.service

12、yum install openstack-cinder targetcli python-keystone -y
#把linux系统安装一个cinder存储服务,从而把服务器转变为cinder存储节点;cinder客户端也会连接keystone做验证;cinder存储服务,会调用linux系统上的lvm来创建逻辑卷

13、vim /etc/cinder/cinder.conf
[database]   #存储节点创建完卷之后,需要把卷的元数据写入到mysql中
connection = mysql+pymysql://cinder:cinder123@openstack-vip.linux.local/cinder

[DEFAULT]
transport_url = rabbit://openstack:openstack123@openstack-vip.linux.local  #cinder-api与存储节点交互是通过rabbitmq
auth_strategy = keystone   #使用keystone做认证
my_ip = 172.31.7.103       #指定当前服务器IP地址
enabled_backends = lvm     #开启的后端存储为lvm,通过此处指定的lvm调用下面的lvm模块配置的存储
glance_api_servers = http://openstack-vip.linux.local:9292  #指定glance的API

[keystone_authtoken]
www_authenticate_uri = http://openstack-vip.linux.local:5000
auth_url = http://openstack-vip.linux.local:5000
memcached_servers = openstack-vip.linux.local:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder    #到keystone做认证,认证cinder的账号权限
password = cinder

[lvm]      #为LVM后端配置LVM驱动程序
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver  #指定LVM驱动程序;即通过指定的驱动创建LVM
volume_group = cinder-volumes       #指定卷组(vg)                 
target_protocol = iscsi             #pv使用的是iscsi协议,可以提供块儿存储服务
target_helper = lioadm              #iscsi管理工具
volume_backend_name=Openstack-lvm   #当后端有多个不同类型的存储时,可以在openstack中调用指定的存储;给当前存储指定个名称,用于后期区分多个不同的存储

[oslo_concurrency]   #配置锁路径
lock_path = /var/lib/cinder/tmp

14、vim /etc/hosts
172.31.7.248 openstack-vip.linux.local

15、systemctl start openstack-cinder-volume.service target.service

16、systemctl enable openstack-cinder-volume.service target.service

17、tail -f /var/log/cinder/volume.log   #日志中不能报错

controller节点进行验证

1、openstack volume service list   #验证cinder服务注册情况;有两个服务,一个是scheduler和volume

2、通过openstack dashboard创建卷进行测试(38)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
3、指定卷的名称及大小,创建卷(39)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
4、在存储节点,通过:lvdisplay 命令可以查看到新创建的20G的lvm逻辑卷

5、将创建的卷与虚拟机通过网络进行关联(40)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
6、选择需要关联的虚拟机(41)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
7、出现连接到,则表示关联成功(42)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
8、进入到卷所关联的openstack的虚拟机中

9、fdisk -l  #查看是否有vdb这个磁盘设备,有则关联成功

10、mkfs.ext4 /dev/vdb   #块设备需要先格式化文件系统,才可以查看到可挂载的文件类型,从而挂载磁盘进行使用

11、mount /dev/vdb /opt/  #挂载vdb磁盘到/opt目录下

12、cp /var/log/messages /opt/  #拷贝文件进行测试

针对卷进行拉伸试验

1、进入到关联卷的openstack的虚拟机中

2、umount /opt/   #取消挂载,如果卷被挂载,则无法进行卷拉伸

3、dashboard上选择关联的卷(38)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
4、将卷与虚拟机取消关联(43)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
5、选择需要扩展的卷,进行卷扩展(44)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
6、指定扩展后的卷大小,卷扩展只能比之前大不能小(45)
第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
controller节点进行验证
7、然后还可以再将卷与其他的虚拟机做关联,扩展后的卷不需要重新格式化文件系统,直接可以挂载;如果再次进行格式化文件系统,则卷上之前的所有数据将会丢失

8、挂载完后,可能会出现拉伸后的磁盘大小还是之前的大小,这是因为磁盘属性虽然是扩展后的大小,但是文件系统却未识别,需要执行下面指令:
resize2fs /dev/vdb   #重新识别磁盘空间大小