cinder对接nfs后端存储

news2024/11/25 16:33:40

1.部署配置流程

1.安装nfs服务端

  • 可以新增一个节点,或直接使用计算节点,因为存储节点上已经有lvm了
  • 这里直接使用计算节点来安装
yum install nfs-utils -y

2.修改配置

  • vi /etc/exports
# 要共享的目录 允许的网络1(操做权限) 允许的网络2(操做权限) ...
/data 192.168.200.0/24(rw,async,no_root_squash,no_all_squash) 192.168.100.0/24(rw,async,no_root_squash,no_all_squash)
  • 创建共享目录
mkdir /data

3.启动服务

systemctl enable rpcbind
systemctl enable nfs

systemctl restart rpcbind
systemctl restart nfs

4.控制节点安装nfs客户端

  • 1.安装
yum install nfs-utils.x86_64 -y
  • 2.验证
[root@controller ~]# showmount -e 192.168.100.20
# showmount -e compute
# showmount -e 192.168.200.20
Export list for 192.168.100.20:
/data 192.168.100.0/24,192.168.200.0/24

5.存储节点修改配置文件

  • 1.修改/etc/cinder/cinder.conf
[DEFAULT]
# 最开始只有lvm
enabled_backends = lvm,nfs
# 增加一个nfs的配置
[nfs]
volume_driver = cinder.volume.drivers.nfs.NfsDriver
# 指定nfs挂载路径
nfs_shares_config = /etc/cinder/nfs_shares
volume_backend_name = nfs
  • 2.新建vi /etc/cinder/nfs_shares文件,内容如下
# 效果:mount -t nfs 192.168.200.20:/data /etc/cinder/nfs_shares
192.168.200.20:/data
compute:/data
  • 3.重启cinder-volume服务
systemctl restart openstack-cinder-volume.service

6.检查是否配置成功

  • 在控制节点执行以下命令,如果出现block@nfs,状态为up即表示成功
[root@controller ~]# cinder service-list
+------------------+------------+------+---------+-------+----------------------------+-----------------+
|      Binary      |    Host    | Zone |  Status | State |         Updated_at         | Disabled Reason |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller | nova | enabled |   up  | 2023-01-09T19:10:40.000000 |        -        |
|  cinder-volume   | block@lvm  | nova | enabled |   up  | 2023-01-09T19:10:20.000000 |        -        |
|  cinder-volume   | block@nfs  | nova | enabled |   up  | 2023-01-09T19:10:11.000000 |        -        |
+------------------+------------+------+---------+-------+----------------------------+-----------------+

2.创建nfs类型的卷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 存储节点查看详情
[root@block ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
192.168.200.20:/data      56G  1.6G   55G   3% /var/lib/cinder/mnt/6cb62e47ea772e32b455a494d80cb65f
[root@block ~]# ll -h /var/lib/cinder/mnt/6cb62e47ea772e32b455a494d80cb65f
total 0
-rw-rw-rw- 1 root root 1.0G Jan 10 04:22 volume-4799890d-9469-4239-9259-2fd5e9cf1975
  • 计算节点(部署了nfs服务)
[root@compute ~]# ll -h /data/volume-4799890d-9469-4239-9259-2fd5e9cf1975 
-rw-rw-rw- 1 root root 1.0G Jan 10 04:22 /data/volume-4799890d-9469-4239-9259-2fd5e9cf1975
[root@compute ~]# qemu-img info /data/volume-4799890d-9469-4239-9259-2fd5e9cf1975
image: /data/volume-4799890d-9469-4239-9259-2fd5e9cf1975
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0

3.将nfs类型的卷挂给实例

在这里插入图片描述

  • 进入虚机,可以看到刚刚挂在的卷:vdb
$ lsblk
NAME   MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
vda    253:0    0      1G  0 disk 
`-vda1 253:1    0 1011.9M  0 part /
vdb    253:16   0      1G  0 disk 
  • 格式化磁盘
$ mkfs.ext4 /dev/vdb
  • 将/dev/vdb挂载到/mnt
$ mount /dev/vdb /mnt
$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev                    242.3M         0    242.3M   0% /dev
/dev/vda1                23.2M     18.0M      4.0M  82% /
tmpfs                   245.8M         0    245.8M   0% /dev/shm
tmpfs                   200.0K     68.0K    132.0K  34% /run
/dev/vdb               1007.9M     33.3M    923.4M   3% /mnt
  • /mnt目录下创建一个文件
$ cd /mnt
$ echo This is a test >> test.txt
$ ls
lost+found  test.txt

4.在计算节点(部署了nfs服务)查看挂在的nfs卷信息

  • 1.将/data目录下的nfs类型的存储卷,挂在到/srv路径下
[root@compute ~]# mount -o loop /data/volume-4799890d-9469-4239-9259-2fd5e9cf1975 /srv
  • 2.进入/srv,查看刚刚创建的文件是否能展示出来
[root@compute ~]# cd /srv
[root@compute srv]# ls
lost+found  test.txt

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

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

相关文章

Mybatis源码分析(八)MapperMethod的Select分析

目录一 Select1.1 参数的对应解析convertArgsToSqlCommandParam1.2 ID获取对应的MappedStatement1.3 MappedStatement交给执行器执行1.4 根据参数获取BoundSql1.5 SqlNode节点的解析1.5.1 MixedSqlNode1.5.2 IfSqlNode1.5.3 StaticTextSqlNode1.5.4 TextSqlNode1.6 执行器执行查…

Delete `␍`eslint(prettier/prettier) 错误的解决方案

Delete ‘␍’ eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码,在执行pre-commit时,出现如下错误: Delete ␍eslint(prettier/prettier)下面是几种个人尝试过的解决方案: 解决方案 一、Crtl…

【自学Python】Python bytes转string

Python bytes转string Python string转bytes教程 在 Python 中,bytes 类型和 字符串 的所有操作、使用和内置方法也都基本一致。因此,我们也可以实现将 bytes 类型转换成 string 类型。 Python bytes转string方法 Python bytes 转 string 方法主要有…

effective c++读书笔记4

设计class犹如设计type新type的对象应该如何被创建和销毁?:这会影响到你的class的构造函数和析构函数以及内存分配函数和释放函数的设计。对象的初始化和对象的赋值有什么样的区别?这答案决定你的构造函数和赋值操作符的行为,以及…

分享一套Springboot个人博客系统源码带本地搭建教程

Springboot个人博客系统源码带本地搭建教程,需要源码学习可私信我获取。 技术架构 前端框架:JQuery SemanticUI Markdown prism animatecss Tocbot zplayer lightbox 后端框架:SpringBoot 2.2.5 Mybatis Thymeleaf PageHelper m…

基于JAVA SSM springboot实现的抗疫物质信息管理系统设计和实现

基于JAVA SSM springboot实现的抗疫物质信息管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 …

记录一次Spring事务线上异常

Spring事务管理配置方式: XML模糊匹配,绑定事务管理注解,可对每个需要进行事务处理的方法单独配置,只需 Transactional,然后添加属性配置 为简便,本文使用注解方式。Spring初始化时,会通过扫描…

C进阶:通讯录(动态版本 + 文件操作)附源码

本文主要讲解通讯录的代码; 需要拥有结构体,动态内存开辟,文件操作的知识; 目录 🐲一.通讯录思路 🕊️二.三个文件的建立 😼三.所需要使用的变量的创建(包含在头文件contact.h中&…

从0到1完成一个Vue后台管理项目(十三、信息列表页面实现:对话框新增、DateTimePicker 日期时间选择器)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

JavaScript 事件流

文章目录JavaScript 事件流概述事件冒泡简介onclick() 事件冒泡addEventListener() 事件冒泡stopPropagation() 阻止事件冒泡事件捕获简介addEventListener() 事件捕获W3C标准事件流取消事件默认行为取消使用对象属性绑定的事件的默认行为取消使用addEventListener()绑定的事件…

社科院与杜兰大学金融管理硕士项目你有了解吗?每年招生一期错过申请太可惜了

社科院与杜兰大学金融管理硕士是个什么项目?社科院是所学校吗,怎么都没听说过。杜兰大学又是哪里的学校?前几天有位咨询的同学抛出这些疑问,着实让我不知如何给予回答。像社科院这么低调的院校太少了。社科院全称是中国社会科学院…

错题 5jxn 8253,neg指令,知CPU频率求经典总线周期,如何取一个字,字扩展指令CBW扩展要求,知道相对位移量求转移后指令偏移地址

1:8253工作于方式1时,输出负脉冲的宽度等于() A:计数初值N-1个CLK脉冲宽度 B:计数初值N1个CLK脉冲宽度C:计数初值N个CLK脉冲宽度 D:计数初值(2N-1)/2个CLK脉冲宽度 方式0和方式1 波形相同(计数过程中低,计数完高)&…

Pytorch 暂退法(Dropout)

在2014年,斯里瓦斯塔瓦等人 (Srivastava et al., 2014) 就如何将毕晓普的想法应用于网络的内部层提出了一个想法: 在训练过程中,他们建议在计算后续层之前向网络的每一层注入噪声。 因为当训练一个有多层的深层网络时,注入噪声只会…

八、Gtk4-GtkBuilder and UI file

1 New, Open and Save button 在上一节中,我们制作了一个非常简单的编辑器。它在程序开始时读取文件,在程序结束时将文件写出来。它可以工作,但不是很好。如果我们有“新建”、“打开”、“保存”和“关闭”按钮就更好了。本节介绍如何在窗口…

【年度总结】2022不忘初心,砥砺前行 2023纵有疾风起,人生不言弃。

2022 工作 砥砺前行 跨境电商跑路 2022年3月,从一家小跨境电商被动跑路,果断处于迷茫期,被动跑路的最好优势就是有赔偿,哈哈,怎么还有一丢丢高兴呢。简单总结了下在该公司的经历,是之前的老大带我去的&am…

如何通过产品帮助中心减轻客服压力,提高内部人员工作效率

客户的问题一直在重复,客服人员压力山大 客户不愿接听客服电话,产品问题难以解决 下班时间休息日,产品问题找谁问? 这些关于客户服务的老问题们困扰着许多产品方多年 要解决以上问题,更好地满足顾客需求。 搭建帮…

基于javaweb(springboot+mybatis)生活美食分享平台管理系统设计和实现以及文档报告

基于javaweb(springbootmybatis)生活美食分享平台管理系统设计和实现以及文档报告 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎…

详解函数指针(●‘◡‘●)☞

本文紧接于http://t.csdn.cn/78wbF 这篇一.函数指针数组\ ( >O< ) /1.书写形式&#xff1a;由函数指针内部*变量名>*变量名[n]&#xff1b; 2.使用&#xff1a;函数指针数组的用途&#xff1a;转移表 例如&#xff1a;模拟计算器&#xff1a;#include<stdio.h> …

用了这么久 IDEA,你还没用过 Live Templates 吗?

大家好&#xff0c;我是风筝&#xff0c;公众号「古时的风筝」&#xff0c;专注于 Java技术 及周边生态。 Live Templates 是什么&#xff0c;听上去感觉挺玄乎的。有的同学用过之后觉得简直太好用了&#xff0c;不能说大大提高了开发效率吧&#xff0c;至少也是小小的提高一下…

Qt创建项目:手把手创建第一个Qt项目

上一节介绍了QtCreator编辑器的页面长什么样子&#xff0c;以及都有哪些功能区&#xff0c;每个功能区都是用来做什么的。这一节我就手把手带大家创建一个Qt项目。 创建项目 点击新建按钮 创建项目有两个入口&#xff0c;一个是在欢迎页面的projects中点击New(新建)按钮&…