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

news2025/1/2 3:13:51

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)完成创建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1394698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git仓库使用说明

Git软件使用 1.先下载git相关软件 下载地址: Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 …

Docker 安装 PHP

Docker 安装 PHP 安装 PHP 镜像 方法一、docker pull php 查找 Docker Hub 上的 php 镜像: 可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。 此外,我们还可以用 docker search php 命令来查看可用版本: runoobrunoob:…

AI 视频 | HiDream.ai 支持长视频,突破 4 秒限制!

2024 年,AI 视频领域大有可为。那么想卷 AI 视频领域,首先得掌握几个 AI 视频的工具。 之前的文章已经分享了一些常用的 AI 视频工具,比如 Pika、Runway Gen-2、Moonvalley、NeverEnds、DomoAI 以及 Stable Video Diffusion。 这些「往期 A…

关于Access中列的冻结的知识,看这篇就够了

在Microsoft Access中,有一个名为“冻结”的功能,使用户可以在滚动到另一个区域时保持数据表的某个区域可见。 可以使用冻结功能冻结数据表中的表、查询、窗体、视图或存储过程中的一个或多个字段。你冻结的字段将移动到数据表的左侧位置。 如何在Micr…

Unity关于纹理图片格式带来的内存问题和对预制体批量格式和大小减半处理

我们经常会遇到内存问题,这次就是遇到很多图片的默认格式被改成了RGB32,导致Android打包后运行内存明显增加。 发生了什么 打包Android后,发现经常崩溃,明显内存可能除了问题,看了内存后发现了问题。 见下图&#xf…

学习python仅此一篇就够了(使用python操作数据库)

python操作mysql SQL语言的分类 数据定义:DDL 数据操作:DML 数据控制:DCL 数据查询:DQL SQL支持注释:单行注释:--;单行注释#;多行注释:/* */ #查看数据库 show da…

Filter过滤器、使用场景、使用办法、创建和配置等

这里写目录标题 过滤器应用场景自动登录统一设置编码格式访问权限控制敏感字符过滤 Filter使用Filter的创建和配置 过滤器 过滤器实际上就是对 web资源进行拦截,做一些处理后再交给下一个过滤器或 servlet处理通常都是用来拦截request进行处理的,也可以…

再见了RDM,Redis官方GUI才是最好的!

1 简介 直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持),官方下载地址。 使…

大师学SwiftUI第6章 - 声明式用户界面 Part 4

步进器视图 ​​Stepper​​视图创建一个带递增和递减按钮的控件。该结构体提供了多个初始化方法,包含不同的配置参数组合。以下是最常用的一部分。 Stepper(String, value: Binding, in: Range, step: Float, onEditingChanged: Closure):此初始化方法…

基于Prism框架的WPF前端框架开发《知产代理数字化解决方案》

最近新开发了一套WPF前端界面框架,叫《知产代理数字化解决方案》,采用了时下流行的Prism框架作为整个系统的基础架构,演示了Prism中的IRegionManager区域管理器、IDialogAware对话框、IDialogService对话框服务、IContainerExtension容器等用…

财务思维一张图

系统研读了《肖星的财务思维课》和得到《贾宁财务思维课》,尝试用一张最简单的图总结财务思维所学到精髓吧。 《肖星的财务思维课》 得到《贾宁财务思维课》 附: 【清华大学】最好的财务课《商业的财务逻辑》(全7课)肖星教授 【…

Multimodal Multitask Learning with a Unified Transformer

SNLI-VE dataset,natural language understanding tasks:MNLI,QNLI,QQP,SST-2 截止到发文时间的issue数,多吓人呐,不建议复现

猫头虎博主第9期赠书活动:《YOLO目标检测》计算机AI视觉实战YOLO人工智能目标检测与跟踪图像处理深度学习图像检测书籍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

分析Unity崩溃日志(Android)

Unity版本: 这里Unity版本是Unity 2019.4.30f1 崩溃信息: 错误信息如下: Exception Appversion: versionName 1.0.1 versionCode 1 Process: sg.atla.f.c PID: 22716 UID: 10749 Flags: 0x3088be44 Package: sg.atla.f.c v1 (1.0.1) Fo…

.NET架构师:全网最全“权限系统”设计剖析

🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面…

flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法

问题描述 问题1:当你使用FormData.from(Flutter3直接不能用)的时候,可能会提示没有这个方法,或者使用FormData.fromMap(flutter3的dio支持)的时候也提示没有,这时候可能就是和get库里面的Formdata冲突了 问题1:The me…

Gateway网关限流

在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止恶意网络攻击 文章目录 一、常见限流场景1.1 限流的对象1.2 限流的处理1.3 限流的架构 二、常见的限流算法2…

HTML5+CSS3+JS小实例:实时给中文添加拼音

实例:实时给中文添加拼音 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"&…

GoZero微服务个人探究之路(零)个人对微服务产生原因的思考,对前三篇的补充

为什么产生了微服务架构--必要性 这里我觉得看GoZero作者写的博文就可以有很好的体会 具体的&#xff0c;他画了这一张图&#xff08;以电商后台系统为例子&#xff09; 所以&#xff0c;我个人产生了如下思考 1.业务逻辑越来越复杂&#xff0c;层层嵌套&#xff0c;分解成微…

力扣刷MySQL-第三弹(详细讲解)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…