openstack cinder 使用nfs_driver

本文档详细介绍了如何在 OpenStack Cinder 中配置和使用 NFS Driver。首先,需要在 controller 和 compute 节点上安装 nfs-common。接着,修改 `/etc/cinder/cinder.conf` 文件,设置 volume_driver 为 `cinder.volume.nfs.NfsDriver`,指定 nfs_shares_config 和 nfs_mount_point_base。然后,在 `volume.filters` 文件中添加必要的命令过滤。在 `/etc/nova/nova.conf` 中,为 cinder 添加 nfs 驱动。最后,确保在 `/var/lib/cinder/nfsshare` 中配置 NFS 服务器地址。实验结果显示,成功创建并挂载了使用 NFS 的 volume 到虚拟机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考 http://www.gossamer-threads.com/lists/openstack/dev/23077?do=post_view_threaded#23077

          file:///home/cloud/Desktop/bell/works_record/records/openstack/cinder/netappnfsdriver-in-folsom.html   (netapp nfsdrive 设置)


在lvm+iscsi的基础上修改配置


0.controller/cinder_service 以及computer需要安装nfs-common


controller/cinder_service 节点

1./etc/cinder/cinder.conf

volume_driver=cinder.volume.nfs.NfsDriver    (添加)

nfs_shares_config=/var/lib/cinder/nfsshare     (添加)
nfs_mount_point_base=/home/cloud/whl (添加)


2.*/etc/cinder/rootwrap.d/volume.filters add*  (参考https://review.openstack.org/#/c/17762/1/etc/cinder/rootwrap.d/volume.filters)

# cinder/volume/nfs.py
stat: CommandFilter, /usr/bin/stat, root
mount: CommandFilter, /bin/mount, root
df: CommandFilter, /bin/df, root
truncate: CommandFilter, /usr/bin/truncate, root
chmod: CommandFilter, /bin/chmod, root
rm: CommandFilter, /bin/rm, root


3.*/etc/nova/nova.conf add* 

### 配置OpenStack Cinder 使用 NFS 存储后端 #### 准备工作 为了使 OpenStack Cinder 能够使用 NFS 作为其存储后端,需先准备必要的硬件和软件资源。确保已有一台或多台服务器用于部署 NFS 服务,并且这些设备能够被 OpenStack 的控制节点访问。 #### 安装与配置 NFS 服务 在计划充当 NFS 服务器的角色上执行以下操作: 1. **安装 NFS** 执行命令 `yum install nfs-utils` 或者对于基于 Debian/Ubuntu 系统则应运行 `apt-get install nfs-kernel-server` 来完成 NFS 工具包的安装[^4]。 2. **启动 NFS 服务** 使用命令 `systemctl start nfs-server.service && systemctl enable nfs-server.service` 开启并设置开机自启该服务。 3. **关闭防火墙及 SELinux (如果适用)** 这一步骤是为了简化网络通信流程,在生产环境中建议仅开放必需的服务端口而不是完全禁用防护措施。可以通过命令 `systemctl stop firewalld` 和编辑 `/etc/selinux/config` 文件来调整相应策略。 4. **创建共享目录** 建立一个专门供 Cinder使用的文件夹路径,比如 `/data/openstack_data/cinder` ,接着赋予适当读写权限给所有用户以便于后续挂载连接时不会遇到权限问题: ```bash mkdir -p /data/openstack_data/cinder chmod 777 /data/openstack_data/cinder/ ``` 5. **修改配置文件** 编辑 `/etc/exports` 添加如下行指定要分享出去的数据位置以及允许哪些 IP 地址范围内的机器可以访问此资源: ``` /data/openstack_data/cinder *(rw,sync,no_root_squash) ``` 6. **重启 NFS 服务** 更改完成后记得重新加载或重启 NFS 服务以应用最新的更改:`systemctl restart nfs-server.service`。 #### 控制节点上的配置变更 接下来是在 OpenStack 控制节点处进行相应的改动使得它可以识别到新加入的 NFS 后端支持。 1. **定义新的后端名称** 登录数据库并将所期望的名字关联至特定类型的卷类型之上,例如命名为 "NFS-Storage"[^3]: ```sql cinder type-key NFS set volume_backend_name=NFS-Storage ``` 2. **增加 NFS 后端参数** 修改 `/etc/kolla/config/cinder.conf` 或其他相关配置文档中的 `[DEFAULT]` 下面添加指向 NFS 导出路径的信息,格式类似于下面这样[^2]: ``` enabled_backends=nfs [nfs] nfs_shares_config=/etc/kolla/config/nfs_shares driver_handles_share_export=false default_volume_type=nfs ``` 3. **创建 NFS shares 文件** 新建名为 `nfs_shares` 的文本档位于上述提到的位置内填入实际可用的 NFS Server 及对应导出路徑信息,每条记录占一行如 `192.168.10.158:/data/openstack_data/cinder` 表示来自这台主机下的某个具体目录可供 Cinder 利用. 4. **重启卷服务** 应用了以上变动之后务必让 Cinder-volume 组件再次初始化从而生效最新设定:`openstack-service restart openstack-cinder-volume`。 通过遵循上述指导方针,即可成功实现 OpenStack Cinder 对接 NFS 实现高效的分布式块级数据存取功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值