nfs做cinder后端存储
介绍
nfs-utils :包括基本的NFS命令与监控程序
rpcbind或portmap:支持安全NFS RPC服务的连接
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组;
no_all_squash:访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash:将root用户及所属组都映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
环境
controller 192.168.200.145
compute 192.168.200.146
nfs-node 192.168.200.150
我们这里将nfs-node节点拿来做nfs服务端
安装nfs服务端
[root@nfs-node ~]# yum install nfs-utils rpcbind -y
开启服务
[root@nfs-node ~]# systemctl start nfs
[root@nfs-node ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-node ~]# systemctl start rpcbind
[root@nfs-node ~]# systemctl enable rpcbind
[root@nfs-node ~]# systemctl status nfs rpcbind
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Active: active (exited) since Mon 2020-01-13 02:43:00 EST; 35s ago
Main PID: 4301 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
Jan 13 02:43:00 nfs-node systemd[1]: Starting NFS server and services...
Jan 13 02:43:00 nfs-node systemd[1]: Started NFS server and services.
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-01-13 02:37:18 EST; 6min ago
Main PID: 1068 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─1068 /sbin/rpcbind -w
Jan 13 02:37:17 nfs-node systemd[1]: Starting RPC bind service...
Jan 13 02:37:18 nfs-node systemd[1]: Started RPC bind service.
创建一个nfs存储目录
[root@nfs-node ~]# mkdir -p /data/nfs
[root@nfs-node ~]# chmod -R 777 /data/nfs/
[root@nfs-node ~]# ll /data
total 0
drwxrwxrwx. 2 root root 6 Jan 13 02:39 nfs
编辑/etc/exports 将共享目录加进去
[root@nfs-node ~]# cat /etc/exports
/data/nfs *(rw,no_root_squash)
然后重启nfs,检查
[root@nfs-node ~]# systemctl restart nfs
[root@nfs-node ~]# showmount -e localhost
Export list for localhost:
/data/nfs *
安装nfs客户端
在compute节点/etc/cinder/cinder.conf添加一下选项(写入的时候将下面的注释去掉)
[DEFAULT]
......
enabled_backends = lvm,nfs
[nfs]
volume_driver = cinder.volume.drivers.nfs.NfsDriver #驱动
nfs_shares_config = /etc/cinder/nfs_shares #nfs挂载路径
volume_backend_name = NFS-Storage #配置nfs名称
创建nfs配置文件
[root@controller ~]# cat /etc/cinder/nfs_shares
192.168.200.150:/data/nfs #这里是nfs服务端地址
[root@controller ~]# chown root:cinder /etc/cinder/nfs_shares
[root@controller ~]# ll /etc/cinder/nfs_shares
-rw-r--r--. 1 root cinder 26 Jan 11 04:12 /etc/cinder/nfs_shares
重启cinder服务
[root@compute ~]# systemctl restart openstack-cinder-volume
到controller节点验证
[root@controller ~]# cinder service-list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-volume | compute@lvm | nova | enabled | up | 2020-01-11T09:33:01.000000 |
| cinder-scheduler | controller | nova | enabled | up | 2020-01-11T09:33:06.000000 |
| cinder-volume | compute@nfs | nova | enabled | up | 2020-01-11T09:33:05.000000 |
+------------------+-------------+------+---------+-------+----------------------------+
创建一个卷测试
[root@controller nfs]# cinder create --name nfs-test 5
+--------------------------------+--------------------------------------+
| Property | Value |
+--------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2020-01-18T20:09:54.000000 |
| description | None |
| encrypted | False |
| id | b9e962c6-6acf-4176-8045-5a8a2a80540b |
| metadata | {} |
| migration_status | None |
| multiattach | False |
| name | nfs-test |
| os-vol-host-attr:host | None |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | 79ab7d3861344339ada1b9f8e3f90a3c |
| replication_status | disabled |
| size | 5 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| updated_at | None |
| user_id | 40270611b677460fb54c4b96f45c5e2a |
| volume_type | None |
+--------------------------------+--------------------------------------+
[root@controller nfs]# cinder list
+--------------------------------------+-----------+----------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+----------+------+-------------+----------+-------------+
| b9e962c6-6acf-4176-8045-5a8a2a80540b | available | nfs-test | 5 | - | false | |
+--------------------------------------+-----------+----------+------+-------------+----------+-------------+
查看nfs目录是否有这个卷
[root@compute ~]# ll /opt/nfs
total 0
-rw-rw----. 1 cinder cinder 5368709120 Jan 18 15:09 volume-b9e962c6-6acf-4176-8045-5a8a2a80540b