查看原文
其他

OpenStack的Cinder后端存储技术-NFS

2016-02-19 云技术实践

本文经过作者授权,转自以下博客:

http://blog.csdn.net/chinagissoft/article/details/47667901

GIS+介绍:

超图研究所(SuperMap),致力于GIS+理念推广,专注于将GIS技术与大数据技术、云计算技术、容器技术、物联网技术进行融合和实践,为中国GIS技术发展贡献力量。


题记

OpenStack的Cinder可以为虚拟机提供后台块存储资源,来扩展虚拟机的存储资源,而且Cinder的后端存储可以支持非常多的存储技术,包括NFS、GlusterFS、Ceph、以及不同存储厂商的硬件驱动,默认帮助文档上支持的是LVM,本文主要介绍基于NFS的后台存储。

环境

Ubuntu 14.04 LTS、OpenStack for icehouse 
使用VM Ware搭建的三个节点的GRE网络架构的虚拟机,另外添加了一个存储节点。

操作步骤

我是将原来的LVM方式修改为NFS。

存储节点

1、在存储节点安装rpcbind和nfs-kernel-server软件包 
2、创建一个路径,共享出去例如/data/nfs

mkdir -p /data/nfs

3、修改权限,建议使用cinder用户和组

root@cinder:~# ll /data/total 12drwxr-xr-x  3 root   root   4096 Jul 17 10:32 ./ drwxr-xr-x 23 root   root   4096 Jul 17 10:32 ../ drwxr-xr-x  2 cinder cinder 4096 Jul 17 15:40 nfs/

4、添加/etc/exportfs配置,共享出去

root@cinder:~# cat /etc/exports # /etc/exports: the access control list for filesystems which may be exported#       to NFS clients.  See exports(5).## Example for NFSv2 and NFSv3:# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)## Example for NFSv4:# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)#/data/nfs *(rw,sync,no_root_squash)

5、重启rpcbind和nfs-kernel-server服务 
6、创建/etc/cinder/nfs_shares文件,并修改其组和权限

-rw-r-----  1 root   cinder    24 Jul 17 10:37 nfs_shares

7、修改/etc/cinder/cinder.conf配置文件,添加如下内容[DEFAULT]

#添加nfs驱动volume_driver=cinder.volume.drivers.nfs.NfsDriver#创建nfs共享存储文件,可以自定义,就是步骤6创建的nfs_shares_config=/etc/cinder/nfs_shares#指定挂载点nfs_mount_point_base=$state_path/mnt

8、重启cinder-volume服务 
9、查看mount挂载信息 
我们可以看到重启完cinder-volume服务之后,可以看到系统会自动mount上相关路径

192.168.3.185:/data/nfs on /var/lib/cinder/mnt/74877087a01856b116a3558d2981626e type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.3.185,local_lock=none,addr=192.168.3.185)

控制节点 
更新/etc/cinder/cinder.conf的nfs驱动

volume_driver=cinder.volume.drivers.nfs.NfsDriver

计算节点 
1、nova.conf更新cinder相关配置

volume_api_class=nova.volume.cinder.API

最后,建议在所有计算和控制节点安装rpcbind、nfs-common、nfs-kernel-server软件包,我在实施过程中遇到了一个问题,我可以创建好的我云硬盘,但是就是挂接不到我的虚拟机上。 
最后查看计算节点/var/log/nova/nova-compute.log有以下错误

2015-07-17 15:46:53.149 44244 TRACE oslo.messaging.rpc.dispatcher Stderr: u'mount: wrong fs type, bad option, bad superblock on 192.168.3.185:/data/nfs,\n       missing codepage or helper program, or other error\n       (for several filesystems (e.g. nfs, cifs) you might\n       need a /sbin/mount.<type> helper program)\n       In some cases useful info is found in syslog - try\n       dmesg | tail  or so\n\n'2015-07-17 15:46:53.149 44244 TRACE oslo.messaging.rpc.dispatcher2015-07-17 15:46:53.151 44244 ERROR oslo.messaging._drivers.common [-] Returning exception Unexpected error while running command. Command: sudo nova-rootwrap /etc/nova/rootwrap.conf mount -t nfs 192.168.3.185:/data/nfs /var/lib/nova/mnt/74877087a01856b116a3558d2981626e Exit code: 32Stdout: u''Stderr: u'mount: wrong fs type, bad option, bad superblock on 192.168.3.185:/data/nfs,\n       missing codepage or helper program, or other error\n       (for several filesystems (e.g. nfs, cifs) you might\n       need a /sbin/mount.<type> helper program)\n       In some cases useful info is found in syslog - try\n       dmesg | tail  or so\n\n' to caller@                                                                                                                                                                                                         @                  

最后在计算节点安装上述nfs安装包,问题解决。

验证

1、我们使用horizon创建一个1GB的云硬盘,我们可以看到cinder的挂载点

root@cinder:~# ll /var/lib/cinder/mnt/74877087a01856b116a3558d2981626e/total 8drwxr-xr-x 2 cinder cinder       4096 Jul 17 15:40 ./ drwxr-xr-x 3 cinder cinder       4096 Jul 17 10:39 ../ -rw-rw-rw- 1    108 ntp    1073741824 Jul 17 10:40 volume-d46c486d-71fe-4863-95b5-864621ca9353

2、其实该文件存储在共享文件夹中/data/nfs

root@cinder:~# ll /data/nfstotal 8drwxr-xr-x 2 cinder cinder       4096 Jul 17 15:40 ./ drwxr-xr-x 3 root   root         4096 Jul 17 10:32 ../ -rw-rw-rw- 1    108 ntp    1073741824 Jul 17 10:40 volume-d46c486d-71fe-4863-95b5-864621ca9353

3、查看cinder列表


root@controller:~# cinder list +--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+|                  ID                  | Status | Display Name | Size | Volume Type | Bootable |             Attached to              | +--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+| d46c486d-71fe-4863-95b5-864621ca9353 | in-use |      a       |  1   |     None    |  false   | 614a2641-1e8d-4442-9704-6ab62e3f39d5 | +--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+


欢迎加入KVM社区QQ技术群:

QQ群,99.99%纯技术交流气氛

QQ 2群:131961942,加入密码大写KVM

千人VMWare技术交流群494084329,加入密码小写vm

OpenNebula QQ群:495571573 加入密码Nebula

两千人OpenStack开发纯技术群: 334605713 加入密码nova

Cloudstack纯技术交流群:515249455密码cs

桌面云行业讨论: 484979056 加入密码大写VDI


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存