第七步(1):安装openstack-cinder服务-存储节点
openstack-storage
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)
3、指定卷的名称及大小,创建卷(39)
4、在存储节点,通过:lvdisplay 命令可以查看到新创建的20G的lvm逻辑卷
5、将创建的卷与虚拟机通过网络进行关联(40)
6、选择需要关联的虚拟机(41)
7、出现连接到,则表示关联成功(42)
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)
4、将卷与虚拟机取消关联(43)
5、选择需要扩展的卷,进行卷扩展(44)
6、指定扩展后的卷大小,卷扩展只能比之前大不能小(45)
7、然后还可以再将卷与其他的虚拟机做关联,扩展后的卷不需要重新格式化文件系统,直接可以挂载;如果再次进行格式化文件系统,则卷上之前的所有数据将会丢失
8、挂载完后,可能会出现拉伸后的磁盘大小还是之前的大小,这是因为磁盘属性虽然是扩展后的大小,但是文件系统却未识别,需要执行下面指令:
resize2fs /dev/vdb #重新识别磁盘空间大小