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存储后端的更多相关文章

  1. cinder块存储 后端采用lvm、nfs安装配置

    #cinder块存储 后端采用lvm.nfs安装配置 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #cinder ...

  2. 使用Docker跑MySQL 作为Django的存储后端

    Docker的好处不科普了,用过的都说好. 不想污染自己开发机器上的文件环境,本萌新使用Docker运行Mysql,Redis来作为Django的存储后端和缓存. 在第一次安装过程中,我遇到了一些问题 ...

  3. JanusGraph :Cassandra作为存储后端的情况下,JanusGraph的安装方法

    Cassandra作为存储后端的情况下,JanusGraph的安装方法 Cassandra作为存储后端的情况下,JanusGraph的安装分为四种方式. 分别是: 1.本地服务器模式(这里的服务器指的 ...

  4. 1.搭建NFS环境,用于存储数据

    作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-12 14:59:50 星期三 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...

  5. kubernetes之NFS动态提供Kubernetes后端存储卷

    StorageClass作为对存储资源的抽象定义, 对用户设置的NFS申请屏蔽后端存储的细节, 一方面减少了用户对于存储资源细节的关注, 另一方面减轻了管理员手工管理pv的工作, 由系统自动完成pv的 ...

  6. openstack临时存储后端

    声明: 本博客欢迎转发.但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 眼下openstack提供了 ...

  7. 分布式存储ceph——(2)openstack对接ceph存储后端

    ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...

  8. nfs服务器共享存储

    NFS的使用: 主机   192.168.189.129 备份机 192.168.189.130 图文详解见:https://www.cnblogs.com/security-guard/Linux公 ...

  9. SUSE CaaS Platform 4 - 使用 NFS 作为持久存储

    SUSE CaaS Platform 4 - 持久存储使用 NFS

随机推荐

  1. XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?

    XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其 本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且 可以为 XML ...

  2. 什么是 UML?

    UML 是统一建模语言(Unified Modeling Language)的缩写,它发表于 1997 年,综合了当时已经存在的面向对象的建模语言.方法和过程,是一个支持模型 化和软件系统开发的图形化 ...

  3. Anaconda 怎么安装cv2

    Anaconda run python程序的时候,如果有import cv2, 但是遇到报错的时候, 可以考虑在anaconda 中安装opencv, 安装过程非常简单. 什么是opencv , op ...

  4. mysql实现in子句的limit查询 (转)

    在supesite里面执行一个SQL语句: select * from supe_spaceitems where catid=98 and itemid not in(select itemid f ...

  5. 基 vue-element-admin升级的Vue3 +TS +Element-Plus 版本的后端管理前端解决方案 vue3-element-admin 正式对外发布,有来开源组织又一精心力作,毫无保留开放从0到1构建过程

    项目简介 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youla ...

  6. CCF201503-1图像旋转

    问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含 ...

  7. java如何读取和遍历properties文件

    在java项目开发过程中,使用properties文件作为配置基本上是必不可少的,很多如系统配置信息,文件上传配置信息等等都是以这种方式进行保存.同时学会操作properties文件也是java基础. ...

  8. MySQL中MyISAM和InnoDB引擎的区别

    区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...

  9. SpringMVC 解析(四)编程式路由

    多数情况下,我们在使用Spring的Controller时,会使用@RequestMapping的形式把请求按照URL路由到指定方法上.Spring还提供了一种编程的方式去实现请求和路由方法之间的路由 ...

  10. phpstorm配置xdebug 3.0最新教程!!!配置不成功的快看!

    前言 之前2月份就开始配置xdebug,始终没有成功. 今天看到一篇写得挺详细的文章,心血来潮又折腾了下,可惜没成功. 验证始终说我配置错误 后面去阅读官方的文档,修改了些配置,居然搞成功了!! ni ...