使用NFS作为Glance存储后端

IP

主机名

节点

10.24.193.142

nfs

NFS节点

10.24.200.130

controller

OpenStack Controller节点

2. 基础准备

现平台提供俩台云主机,一台nfs-server节点,一台Controller节点

1. NFS服务安装与配置

(1)修改主机名

修改主机名,修改主机名后,刷新斗学网页面以生效新主机名:

[root@localhost ~]# hostnamectl set-hostname nfs-server
[root@localhost ~]# hostname
nfs-server

(2)NFS服务安装

此处nfs-server节点使用的基础镜像为CentOS 7.9,该基础镜像中已经安装了NFS服务,查看当前安装的NFS服务,命令如下:

[root@nfs-server ~]# rpm -qa |grep nfs-utils
nfs-utils-1.3.0-0.68.el7.x86_64
[root@nfs-server ~]# rpm -qa |grep rpcbind
rpcbind-0.2.0-49.el7.x86_64

可以看到nfs-utils和rpcbind服务已经安装完毕了。

(2)NFS服务配置

创建一个目录作为NFS的共享目录,命令如下:

[root@nfs-server ~]# mkdir /mnt/test
[root@nfs-server ~]# ll /mnt/
total 0
drwxr-xr-x. 2 root root 6 Feb  9 05:56 test

 

[root@nfs-server ~]# vi /etc/exports
/mnt/test 10.24.200.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

生效配置,命令如下:

[root@nfs-server ~]# exportfs -r

配置文件说明:

● /mnt/test:为共享目录(若没有这个目录,请新建一个)。

● 10.24.200.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。

● rw:read-write,可读写。

● ro:read-only,只读。

● sync:文件同时写入硬盘和内存。

● async:文件暂存于内存,而不是直接写入内存。

● wdelay:延迟写操作。

● no_root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,也拥有root权限。显然开启这项是不安全的。

● root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,拥有匿名用户权限,通常它将使用nobody或nfsnobody身份。

● all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端共享的目录来说,都拥有匿名用户权限。

● anonuid:匿名用户的UID(User Identification,用户身份证明)值,可以在此处自行设定。

● anongid:匿名用户的GID(Group Identification,共享资源系统使用者的群体身份)值。

(3)NFS服务启动

nfs-server端启动NFS服务,命令如下:

[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# systemctl start nfs

nfs-server端查看可挂载目录,命令如下:

[root@nfs-server ~]# showmount -e 10.24.193.142
Export list for 10.24.193.142:
/mnt/test 10.24.200.0/24

至此,NFS服务的Server端配置完毕,接下来要让Controller节点作为NFS的Client端,配置Glance服务的后端存储使用NFS服务。

2. 配置NFS作为Glance后端存储

(1)配置Controller节点作为Client端

使用远程工具连接到Controller节点,查看是否安装了NFS服务的客户端,命令如下:

[root@controller ~]# rpm -qa |grep nfs-utils
nfs-utils-1.3.0-0.61.el7.x86_64

查看到Controller节点已经安装了nfs-utils工具,该节点可以作为NFS的Client端使用。

(2)挂载目录

在挂载目录之前,必须要弄清楚一件事情,就是Glance服务的后端存储在哪里,或者说,使用glance image-create命令上传的镜像会被存放到哪里。镜像会被存放到/var/lib/glance/images目录下,关于这个路径,感兴趣的读者可以自行上传镜像测试。

知道了Glance的存储路径,就可以挂载该目录到NFS服务了,命令如下:

nfs节点挂载点需要关闭防火墙规则,iptablesselinux(实体机需要关闭,服务器不用)

[root@controller ~]# mount -t nfs 10.24.193.142:/mnt/test /var/lib/glance/images/

使用df命令查看挂载情况。

[root@controller ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/vda1                 50G  2.7G   48G   6% /
devtmpfs                 5.8G     0  5.8G   0% /dev
tmpfs                    5.8G  4.0K  5.8G   1% /dev/shm
tmpfs                    5.8G   49M  5.8G   1% /run
tmpfs                    5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/loop0               9.4G   33M  9.4G   1% /swift/node/vda5
tmpfs                    1.2G     0  1.2G   0% /run/user/0
10.24.193.142:/mnt/test   20G  865M   20G   5% /var/lib/glance/images

可以发现挂载成功。

(3)修改配置

在做完挂载操作后,此时Glance服务还不能正常使用,若使用glance image-create命令上传镜像的话,会报错,因为此时images目录的用户与用户组不是glance,而是root,需要把images目录的用户与用户组进行修改,命令如下:

[root@controller ~]# cd /var/lib/glance/
[root@controller glance]# chown glance:glance images/
[root@controller glance]# ll
total 0
drwxr-xr-x. 2 glance glance 6 Feb  9 05:56 images

这个时候,Glance服务就可以正常使用了,使用cirros镜像进行测试,将cirros-0.3.4-x86_64-disk.img上传至Controller节点,并上传,命令如下:

[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img

可以看到上传镜像成功。查看images目录下的文件,命令如下:

[root@controller ~]# ll /var/lib/glance/images/
total 12980

-rw-r-----. 1 glance glance 13287936 Feb  9 06:22 a59c327b-0c0d-44e7-a0f2-f9d53761c2b4

然后回到nfs-server节点,查看/mnt/test下的文件,命令如下:

[root@nfs-server ~]# ll /mnt/test/
total 12980

-rw-r-----. 1 161 161 13287936 Feb  9 06:22 a59c327b-0c0d-44e7-a0f2-f9d53761c2b4

文件的ID相同,验证NFS作为Glance镜像服务的后端存储成功。

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值