[关闭]
@tony-yin 2017-10-31T16:03:32.000000Z 字数 2446 阅读 911

使用NFS挂载RBD

Magicloud RBD NFS


具体场景

PS:Luminous新版本提供了新的NFS的处理方式,不再需要用这种老式的RBD的手段,之后也会在其他文章分享出来

Hammer版本

操作步骤

  1. 1. 使用RBD方式导出NFS,步骤如下:
  2. 1.1 create RBD block device image (size unit: MB)
  3. # rbd create --size 1024 ec-pool/test_image
  4. 1.2 map RBD device
  5. # rbd map ec-pool/test_image
  6. [Optional] check mapped device
  7. # rbd showmapped
  8. 1.3 create filesystem on the device
  9. # mkfs.ext4 /dev/rbd0
  10. 1.4 mount it,
  11. # mkdir -p /vol/test_image
  12. # mount /dev/rbd0 /vol/test_image/
  13. 1.5 export it, modify the /etc/exports
  14. # cat /etc/exports
  15. /vol/test_image *(rw,async,no_subtree_check,no_root_squash)
  16. # service nfs-kernel-server restart
  17. # exportfs -r
  18. 1.6 check mount info for NFS server
  19. # showmount -e 192.168.1.167
  20. 2. 在客户端以nfs方式mount上述导出的文件夹
  21. # mount -t nfs 192.168.1.167:/vol/test_image /mnt

Luminous版本

Create RBD image

之前EC Pool只能为RGW服务 ,直到Luminous版本,EC Pool也可以应用在RBDCephFS,并且增加了data-pool这样的新特性,具体请参考官网:http://docs.ceph.com/docs/luminous/rados/operations/erasure-code/#erasure-coding-with-overwrites

所以创建image的方式也有所改变

Enable ec overwrites

  1. ceph osd pool set ec_pool allow_ec_overwrites true

Create pool and image

由于EC不支持omap,所以在CephFS或者RBD场景使用EC时,需要将data存在EC Pool中,将metadata存在Replicated Pool

  1. // 创建pool
  2. ceph osd pool create ec-pool 12 12 erasure // ec pool, store data
  3. ceph osd pool create md-pool 12 12 replicated // replicated pool, store metadata
  4. ceph osd pool create ssd-pool 12 12 replicated // replicated pool, used as cache pool
  5. // 创建image
  6. rbd create --size 1024 --data-pool ec-pool md-pool/test_image

Map RBD

这一步之前的操作是rbd map ec-pool/test_image,所以当前需要执行

  1. rbd map md-pool/test_image

但是一直timeout,通过查看dmesg和网上资料发现是因为linux kernel版本太低,所以升级了一下内核到4.3版本之后就可以work

升级内核版本请参考:

Check map

  1. rbd showmapped

Create filesystem on RBD

  1. mkfs.ext4 /dev/rbd0

Mount

  1. mkdir -p /vol/test_image
  2. mount /dev/rbd0 /vol/test_image/

Modify export for nfs on server

  1. vim /etc/exports
  2. /vol/test_image *(rw,async,no_subtree_check,no_root_squash) // Modify it to /etc/exports

Server

Install NFS on server and client

Server端执行一下操作

Install
  1. yum -y install nfs-utils rpcbind
Start service

nfs依赖rpcbind,所以必须先启动rpcbind,这很重要

  1. service rpcbind start
  2. service nfs start
  3. exportfs -r

Client

客户端也执行以上操作,假设客户端ip192.168.1.1,服务端为192.168.1.2

Check mount

查看是否可以挂载

  1. showmount -e 192.168.1.2
Mount server to client
  1. mount -t nfs 192.168.1.2:/vol/test_image /mnt

总结

遇到的主要问题

希望帮助大家尽量少些踩坑 ~~~

作者: Tony
日期: 2017-10-31 22:33

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注