使用NFS作为Glance存储后端
NFS服务介绍
NFS网络文件系统提供了一种在类UNIX系统上共享文件的方法。目前NFS有3个版本:NFSv2、NFSv3、NFSv4。CentOS7默认使用NFSv4提供服务,优点是提供了有状态的连接,更容易追踪连接状态,增强安全性。NFS监听在TCP 2049端口上。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。在客户端看来,使用NFS的远端文件就像是在使用本地文件一样,只要具有相应的权限就可以使用各种文件操作命令(如cp、cd、mv和rm等),对共享的文件进行相应的操作。Linux操作系统既可以作为NFS服务器也可以作为NFS客户,这就意味着它可以把文件系统共享给其他系统,也可以挂载从其他系统上共享的文件系统。
为什么需要安装NFS服务?当服务器访问流量过大时,需要多台服务器进行分流,而这多台服务器可以使用NFS服务进行共享。NFS除了可以实现基本的文件系统共享之外,还可以结合远程网络启动,实现无盘工作站(PXE启动系统,所有数据均在服务器的磁盘阵列上)或瘦客户工作站(本地自动系统)。NFS应用场景多为高可用文件共享,多台服务器共享同样的数据,但是它的可扩展性比较差,本身高可用方案不完善。取而代之,数据量比较大的可以采用MFS、TFS、HDFS等分布式文件系统。
NFS服务安装与配置
此处nfs-server节点使用的基础镜像为CentOS7.9,该基础镜像中已经安装了NFS服务,查看当前安装的NFS服务
① nfs-utils:包含NFS服务器端守护进程和NFS客户端相关工具。
② rpcbind:提供RPC的端口映射的守护进程及其相关文档、执行文件等。
[root@nfs-serverr ~]# rpm -qa | grep nfs-utils
nfs-utils-1.3.0-0.61.el7.x86_64
[root@nfs-server ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-47.el7.x86_64
[root@nfs-server ~]#
创建一个目录作为NFS的共享目录
[root@nfs-server ~]# mkdir /mnt/test
[root@nfs-server ~]# ll /mnt/
total 0
drwxr-xr-x 2 root root 6 May 7 12:58 test
创建完共享目录后,编辑NFS服务的配置文件/etc/exports
[root@nfs-server ~]# cat /etc/exports
/mnt/test 10.60.3.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
[root@nfs-server ~]# exportfs -r
[root@nfs-server ~]#
配置文件说明:
● /mnt/test:为共享目录(若没有这个目录,请新建一个)。
● 10.60.3.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,共享资源系统使用者的群体身份)
NFS服务启动
nfs-server端命令启动NFS的相关服务,并配置开机启动。
root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl enable rpcbind
[root@nfs-server ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@controller ~]#
nfs-server端查看可挂载目录
[root@nfs-server ~]# showmount -e 10.60.3.21
Export list for 10.60.3.21:
/mnt/test 10.60.3.0/24
[root@nfs-server ~]#
至此,NFS服务的Server端配置完毕,接下来要让Controller节点作为NFS的Client端,配置Glance服务的后端存储使用NFS服务
配置NFS作为Glance后端存储
Controller节点,查看是否安装了NFS服务的客户端
[root@controller ~]# rpm -qa |grep nfs-utils
nfs-utils-1.3.0-0.61.el7.x86_64
挂载目录
在挂载目录之前,必须要弄清楚一件事情,就是Glance服务的后端存储在哪里,或者说,使用glance image-create命令上传的镜像会被存放到哪里。镜像会被存放到/var/lib/glance/images目录下,关于这个路径,感兴趣的读者可以自行上传镜像测试
知道了Glance的存储路径,就可以挂载该目录到NFS服务了
[root@controller ~]# mount -t nfs 10.60.3.20:/mnt/test /var/lib/glance/images/
[root@controller ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 100G 11G 90G 11% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 17M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop0 4.2G 4.2G 0 100% /opt/centos
/dev/loop1 3.6G 3.6G 0 100% /opt/iaas
tmpfs 783M 0 783M 0% /run/user/0
10.60.3.20:/mnt/test 100G 967M 100G 1% /var/lib/glance/images
[root@controller ~]#
修改配置
在做完挂载操作后,此时Glance服务还不能正常使用,若使用glance image-create命令上传镜像的话,会报错,因为此时images目录的用户与用户组不是glance,而是root,需要把images目录的用户与用户组进行修改
[root@controller images]# cd /var/lib/glance/
[root@controller glance]# chown glance:glance images/
[root@controller glance]# ll
total 0
drwxr-xr-x 2 glance glance 6 May 7 13:09 images
[root@controller glance]#
测试验证
这个时候,Glance服务就可以正常使用了,使用centos镜像进行测试
[root@controller images]# glance image-create --disk-format qcow2 --container-format bare --name centos --progress --file ./CentOS_7.5_x86_64_XD.qcow2
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 3d3e9c954351a4b6953fd156f0c29f5c |
| container_format | bare |
| created_at | 2022-05-07T13:18:54Z |
| disk_format | qcow2 |
| id | 2afee0d2-cb11-47e0-890f-c6f49c089a04 |
| min_disk | 0 |
| min_ram | 0 |
| name | centos |
| owner | bf36698d9afd45c4b46c1933469a9101 |
| protected | False |
| size | 510459904 |
| status | active |
| tags | [] |
| updated_at | 2022-05-07T13:19:52Z |
| virtual_size | None |
| visibility | shared |
+------------------+--------------------------------------+
可以看到上传镜像成功。查看images目录下的文件
[root@controller images]# cd /var/lib/glance/images/
[root@controller images]# ll
total 498496
-rw-r----- 1 glance glance 510459904 May 7 13:19 2afee0d2-cb11-47e0-890f-c6f49c089a04
[root@controller images]#
然后回到nfs-server节点,查看/mnt/test下的文件
[root@nfs-server ~]# cd /mnt/test/
[root@nfs-server test]# ll
total 498496
-rw-r----- 1 161 161 510459904 May 7 13:19 2afee0d2-cb11-47e0-890f-c6f49c089a04
[root@nfs-server test]#
文件的ID相同,验证NFS作为Glance镜像服务的后端存储成功。
使用NFS作为Glance存储后端的更多相关文章
- cinder块存储 后端采用lvm、nfs安装配置
#cinder块存储 后端采用lvm.nfs安装配置 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #cinder ...
- 使用Docker跑MySQL 作为Django的存储后端
Docker的好处不科普了,用过的都说好. 不想污染自己开发机器上的文件环境,本萌新使用Docker运行Mysql,Redis来作为Django的存储后端和缓存. 在第一次安装过程中,我遇到了一些问题 ...
- JanusGraph :Cassandra作为存储后端的情况下,JanusGraph的安装方法
Cassandra作为存储后端的情况下,JanusGraph的安装方法 Cassandra作为存储后端的情况下,JanusGraph的安装分为四种方式. 分别是: 1.本地服务器模式(这里的服务器指的 ...
- 1.搭建NFS环境,用于存储数据
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-12 14:59:50 星期三 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...
- kubernetes之NFS动态提供Kubernetes后端存储卷
StorageClass作为对存储资源的抽象定义, 对用户设置的NFS申请屏蔽后端存储的细节, 一方面减少了用户对于存储资源细节的关注, 另一方面减轻了管理员手工管理pv的工作, 由系统自动完成pv的 ...
- openstack临时存储后端
声明: 本博客欢迎转发.但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 眼下openstack提供了 ...
- 分布式存储ceph——(2)openstack对接ceph存储后端
ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...
- nfs服务器共享存储
NFS的使用: 主机 192.168.189.129 备份机 192.168.189.130 图文详解见:https://www.cnblogs.com/security-guard/Linux公 ...
- SUSE CaaS Platform 4 - 使用 NFS 作为持久存储
SUSE CaaS Platform 4 - 持久存储使用 NFS
随机推荐
- XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?
XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其 本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且 可以为 XML ...
- 什么是 UML?
UML 是统一建模语言(Unified Modeling Language)的缩写,它发表于 1997 年,综合了当时已经存在的面向对象的建模语言.方法和过程,是一个支持模型 化和软件系统开发的图形化 ...
- Anaconda 怎么安装cv2
Anaconda run python程序的时候,如果有import cv2, 但是遇到报错的时候, 可以考虑在anaconda 中安装opencv, 安装过程非常简单. 什么是opencv , op ...
- mysql实现in子句的limit查询 (转)
在supesite里面执行一个SQL语句: select * from supe_spaceitems where catid=98 and itemid not in(select itemid f ...
- 基 vue-element-admin升级的Vue3 +TS +Element-Plus 版本的后端管理前端解决方案 vue3-element-admin 正式对外发布,有来开源组织又一精心力作,毫无保留开放从0到1构建过程
项目简介 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youla ...
- CCF201503-1图像旋转
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含 ...
- java如何读取和遍历properties文件
在java项目开发过程中,使用properties文件作为配置基本上是必不可少的,很多如系统配置信息,文件上传配置信息等等都是以这种方式进行保存.同时学会操作properties文件也是java基础. ...
- MySQL中MyISAM和InnoDB引擎的区别
区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...
- SpringMVC 解析(四)编程式路由
多数情况下,我们在使用Spring的Controller时,会使用@RequestMapping的形式把请求按照URL路由到指定方法上.Spring还提供了一种编程的方式去实现请求和路由方法之间的路由 ...
- phpstorm配置xdebug 3.0最新教程!!!配置不成功的快看!
前言 之前2月份就开始配置xdebug,始终没有成功. 今天看到一篇写得挺详细的文章,心血来潮又折腾了下,可惜没成功. 验证始终说我配置错误 后面去阅读官方的文档,修改了些配置,居然搞成功了!! ni ...