Cinder对接NFS文件系统实验详解

2024-01-19 20:36

本文主要是介绍Cinder对接NFS文件系统实验详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2、对接NFS(Network File System:网络文件系统)实验

实验前的准备:

完整克隆一台虚拟机作为Cinder的后端存储(IP为192.168.100.40)

Cinder节点作为服务端,把Controller作为客户端

Controller节点对接NFS

在Cinder节点添加一个30G的磁盘,分区为30G的sdb1然后进行格式化为xfs文件系统

(1)安装NFS服务,查看NFS是否已经安装,若已经安装了,直接启动nfs-server.service服务并设置开机自己即可。若没有安装,执行yum install -y nfs-utils即可

(2)关闭防火墙及SELINUX

(3)创建共享目录/nfs_server,并把已经格式化好的sdb1挂载到/nfs_server,因为是作为共享的目录所以权限为777

(4)修改/etc/exports配置文件,增加一行参数,/nfs_share 192.168.100.0/24(rw),表示共享服务器的/nfs_server目录下只能192.168.100这个网段的主机才能访问,且拥有读写权限

(5)修改完成配置文件,重启服务systemctl restart nfs-server.service


(6)在客户端(在本实验中,也就是我的controller节点)测试挂载操作。先查看有没有安装nfs-utils,若已经安装直接启动。若没有安装,就先安装再启动

(7)创建一个挂载目录/nfs_test,目录名随意,并把服务端(cinder节点)挂载的目录,挂载到客户端(controller),并存入文件测试。无论在客户端还是服务端,写入的文件都会互相共享

注意:如果卸载文件系统时出现device is busy,执行fuser -m /nfs_test查询进程号,结束掉,或者重启nfs服务


控制节点配置NFS共享,对接后端存储

(8)创建文件/etc/cinder/NFS_share,并写入内容192.168.100.40:/nfs_server,表示把服务端的已经挂载的磁盘挂载到本机上,并把该文件的拥有任何拥有组修改成root:cinder,文件权限为640

(9)增加NFS的后端参数(在/etc/cinder/cinder.conf的配置文件中,找到lvm,在后面加上nfs的配置内容)

662 enabled_backends=lvm,nfs //表示启动的后端存储为lvm和nfs [lvm] iscsi_helper=lioadm volume_group=cinder-volumes iscsi_ip_address=192.168.100.10 volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver volume_backend_name=lvm [nfs] //中括号里面的nfs可以修改,但是需要和662行的enabled_backends=lvm,nfs保持一致 nfs_shares_config = /etc/cinder/NFS_share //表示nfs的共享文件 volume_driver = cinder.volume.drivers.nfs.NfsDriver //表示volume的驱动 volume_backend_name = nfs_backend //表示后端存储的名称,后面需要和类型进行关联

(10)配置完成,重启cinder的所有服务

[root@controller cinder(keystone_wm)]# openstack-service restart cinder

(11)创建云硬盘类型(注意:要用openstack的admin身份创建,可通过help查看要接的具体参数)

[root@controller cinder(keystone_admin)]# cinder type-create nfs_type +--------------------------------------+----------+ | ID | Name | +--------------------------------------+----------+ | 81aa71bc-5428-45e5-8b5f-a36e31e59909 | nfs_type | +--------------------------------------+----------+ [root@controller cinder(keystone_admin)]# cinder type-list +--------------------------------------+----------+ | ID | Name | +--------------------------------------+----------+ | 81aa71bc-5428-45e5-8b5f-a36e31e59909 | nfs_type | | dec12709-630a-41cc-90b1-88281a3b17ce | iscsi | +--------------------------------------+----------+

(12)将存储类型和volume关联(其中volume_backend_name=nfs_backend是山面的nfs中的参数)

[root@controller ~(keystone_admin)]#cinder type-key nfs_type set volume_backend_name=nfs_backend

(13)使用NFS类型创建云硬盘

[root@controller ~(keystone_wm)]# cinder type-list +--------------------------------------+----------+ | ID | Name | +--------------------------------------+----------+ | 81aa71bc-5428-45e5-8b5f-a36e31e59909 | nfs_type | | dec12709-630a-41cc-90b1-88281a3b17ce | iscsi | +--------------------------------------+----------+ [root@controller ~(keystone_wm)]# cinder create --display-name evs001 --volume-type nfs_type 2 //表示创建一个名称为evfs001,类型为nfs_type ,大小为2G的云硬盘 +---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2022-09-15T20:38:10.906141 | | display_description | None | | display_name | evs001 | | encrypted | False | | id | 527d6296-0d62-4fcd-b9f4-340011c7ab1f | | metadata | {} | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | nfs_type | +---------------------+--------------------------------------+

(14)尝试挂载给虚拟机

[root@controller ~(keystone_wm)]# nova list +--------------------------------------+------+---------+------------+-------------+------------------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------+---------+------------+-------------+------------------------------------------+ | 567ac18f-22c4-43ab-967a-7aee9dcd17d7 | LUN1 | SHUTOFF | - | Shutdown | private1=192.168.66.202, 192.168.100.203 | +--------------------------------------+------+---------+------------+-------------+------------------------------------------+ [root@controller ~(keystone_wm)]# cinder list +--------------------------------------+-----------+--------------+------+-------------+----------+--------------------------------------+ | ID | Status | Display Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+--------------+------+-------------+----------+--------------------------------------+ | 527d6296-0d62-4fcd-b9f4-340011c7ab1f | available | evs001 | 2 | nfs_type | false | | | fadda155-4300-4698-b0ba-1da5659d3f5b | in-use | meme1 | 2 | iscsi | false | 567ac18f-22c4-43ab-967a-7aee9dcd17d7 | +--------------------------------------+-----------+--------------+------+-------------+----------+--------------------------------------+ [root@controller ~(keystone_wm)]# nova volume-attach LUN1 527d6296-0d62-4fcd-b9f4-340011c7ab1f +----------+--------------------------------------+ | Property | Value | +----------+--------------------------------------+ | device | /dev/vdc | | id | 527d6296-0d62-4fcd-b9f4-340011c7ab1f | | serverId | 567ac18f-22c4-43ab-967a-7aee9dcd17d7 | | volumeId | 527d6296-0d62-4fcd-b9f4-340011c7ab1f | +----------+--------------------------------------+

(15)完成创建

这篇关于Cinder对接NFS文件系统实验详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623617

相关文章

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot 事务详解(事务传播行为、事务属性)

《SpringBoot事务详解(事务传播行为、事务属性)》SpringBoot提供了强大的事务管理功能,通过@Transactional注解可以方便地配置事务的传播行为和属性,本文将详细介绍Spr... 目录Spring Boot 事务详解引言声明式事务管理示例编程式事务管理示例事务传播行为1. REQUI

MySQL 字符串截取函数及用法详解

《MySQL字符串截取函数及用法详解》在MySQL中,字符串截取是常见的操作,主要用于从字符串中提取特定部分,MySQL提供了多种函数来实现这一功能,包括LEFT()、RIGHT()、SUBST... 目录mysql 字符串截取函数详解RIGHT(str, length):从右侧截取指定长度的字符SUBST

MySQL中的事务隔离级别详解

《MySQL中的事务隔离级别详解》在MySQL中,事务(Transaction)是一个执行单元,它要么完全执行,要么完全回滚,以保证数据的完整性和一致性,下面给大家介绍MySQL中的事务隔离级别详解,... 目录一、事务并发问题二、mysql 事务隔离级别1. READ UNCOMMITTED(读未提交)2

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

python利用backoff实现异常自动重试详解

《python利用backoff实现异常自动重试详解》backoff是一个用于实现重试机制的Python库,通过指数退避或其他策略自动重试失败的操作,下面小编就来和大家详细讲讲如何利用backoff实... 目录1. backoff 库简介2. on_exception 装饰器的原理2.1 核心逻辑2.2

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮