Openstack学习总结之八(存储组件应用)

前言

这部分介绍如何将块存储设备挂载到虚拟机中。

一、块存储操作

1. 创建数据卷

创建一个大小为1Gb的数据卷。

source openstack-demo.sh
openstack volume create --size 1 volume-lvm

执行cinder list查看创建的数据卷。
在这里插入图片描述

2. 使用数据卷

将volume-lvm数据卷挂载到provider-instance实例下。

openstack server add volume provider-instance 8eeae358-a077-4afc-968c-968f256c32ac

挂载时候可能会出现下面Error:

ERROR oslo_messaging.rpc.server OSError: [Errno 2] No such file or directory

出现该问题的原因是配置项的名字写错了:

# 错误
iscsi_helper = lioadm 
# 正确
target_helper = lioadm

3. 测试

先启动vm实例。

openstack server start provider-instance

启动成功后,查看vm实例的ip地址,然后通过ssh登录进去。

ssh [email protected]

登录之后,对新的磁盘执行格式化操作。

sudo su -
fdisk -l
mkfs.ext4 /dev/vdb

格式化完成后,我们新建一个目录,然后将磁盘挂载到该目录上。

mkdir /mount
mount -t ext4 /dev/vdb /mount/

如果我们在/mount目录下操作的数据,都会保存在/dev/vdb磁盘中。

4. 卸载和删除数据卷

先登录vm卸载磁盘:

ssh [email protected]
sudo su -
umount /mount/
exit

卸载完成后退出,然后再执行下面命令卸载数据卷。

source openstack-demo.sh
openstack volume list
nova volume-detach provider-instance 438f45fc-5fef-43a2-9678-7c75a3aa74d8

也可以执行下面命令删除数据卷。

openstack volume delete 438f45fc-5fef-43a2-9678-7c75a3aa74d8

注意卸载和删除的区别,卸载数据卷只是把数据卷从VM中脱离出来,数据卷还是存在的,但是数据卷的状态会重新变为available。删除数据卷的话,数据卷就不存在了。

二、块存储nfs操作

1. 准备工作

  • 时间同步:
ntpdate -u time1.aliyun.com
  • 清空环境:
vgs
vgremove cinder_lvm
vgs
mkfs.ext4 /dev/sdb
  • 安装配置NFS服务:
yum install -y nfs-utils rpcbind --nogpgchec
  • 创建目录:
mkdir -p /cinder_nfs
chown cinder:cinder /cinder_nfs
echo "/cinder_nfs *(rw,no_root_squash)">/etc/exports
  • 启动服务:
systemctl start rpcbind nfs-server
systemctl status rpcbind nfs-server
systemctl enable rpcbind nfs-server
  • 挂载nfs目录到磁盘:
mount /dev/sdb /cinder_nfs/
df -h

2. 计算节点配置

  • 配置cinder目录:
mkdir -p /var/lib/cinder/nfs
chown -R cinder.cinder /var/lib/cinder/nfs
  • 配置使用nfs:
echo '192.168.88.15:/cinder_nfs'>/etc/cinder/nfs_shares
chmod 0640 /etc/cinder/nfs_shares
chown -R cinder:cinder /etc/cinder/nfs_shares
  • 修改cinder配置,添加nfs配置项:
vim /etc/cinder/cinder.conf

[DEFAULT]
enabled_backends = nfs

[nfs]
volume_driver = cinder.volume.drivers.nfs.NfsDriver
nfs_shares_config = /etc/cinder/nfs_shares
nfs_mount_point_base = /var/lib/cinder/nfs
  • 重启服务:
systemctl restart openstack-cinder-volume target
systemctl status openstack-cinder-volume target
  • 验证效果:
ls -l /var/lib/cinder/nfs/
df -h
mount | grep cinder

3. 控制节点使用nfs存储

先安装nfs-utils工具。

yum install nfs-utils -y

安装完成后,创建一块磁盘。

source openstack-demo.sh
openstack volume create --size 1 disk02
cinder list

新建完成后,将新建的数据卷挂载到虚拟机中。

openstack server add volume provider-instance 748d6f05-6e20-43b6-bce3-9b68af28e39a

如果挂载成功,则可以看到status状态为in-use。
在这里插入图片描述

三、多存储操作

1. 准备工作

  • 关闭openstack-cinder-volume服务
  • 清除旧记录
  • 重启主机
systemctl stop openstack-cinder-volume
cinder-manage service remove cinder-volume compute@nfs
cinder-manage service remove cinder-volume compute@lvm
reboot

2. 存储配置

在contrl节点上分别创建两个存储类型:lvm和nfs。

source openstack-admin.sh
openstack volume type create lvm
openstack volume type create nfs

在compute节点上修改cinder配置,分别启用两个后端。

[default]
enabled_backends = lvm,nfs

[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder_lvm
iscsi_protocol = iscsi
target_helper = lioadm
volume_backend_name = lvm

[nfs]
volume_driver = cinder.volume.drivers.nfs.NfsDriver 
nfs_shares_config = /etc/cinder/nfs_shares
nfs_mount_point_base = /var/lib/cinder/nfs
volume_backend_name = nfs

配置完成后重启一下服务。

systemctl restart openstack-cinder-volume target
systemctl status openstack-cinder-volume target

执行命令openstack volume service list检查一下服务是否启动成功。在这里插入图片描述
在control节点上设置存储类型和后端的关联关系。

cinder type-key lvm set volume_backend_name=lvm
cinder type-key nfs set volume_backend_name=nfs

检查效果:

openstack volume type show lvm
openstack volume type show nfs
cinder extra-specs-list

3. 测试

首先创建一个数据卷,类型为nfs,大小为1Gb,名称为volume-nfs。

source openstack-demo.sh
openstack volume create --type nfs --size 1 volume-nfs

创建完成后,将其挂载到VM实例上。

openstack server add volume provider-instance 438f45fc-5fef-43a2-9678-7c75a3aa74d8

创建lvm类型的数据卷与此类似,这里不再作演示。

总结

这部分我们学会了如何将不同类型的数据卷挂载到虚拟机上。接下来我们介绍如何制作镜像文件。

猜你喜欢

转载自blog.csdn.net/zhongliwen1981/article/details/115458475