本文描述如何安裝 ceph 客戶端,使用 Ceph 塊設備 建立文件系統並掛載使用。node
必須先完成 ceph 存儲集羣的搭建,並確保 Ceph 存儲集羣處於 active + clean 狀態,這樣才能使用 Ceph 塊設備。centos
Ceph 塊設備也叫 RBD 或 RADOS 塊設備。app
hostname | ip |
---|---|
admin-node | 192.168.0.130 |
ceph-client | 192.168.0.134 |
注:你能夠在虛擬機上運行 ceph-client 節點,可是不能在與 Ceph 存儲集羣(除非它們也用 VM )相同的物理節點上執行下列步驟。ssh
在 ceph-client 節點安裝 Ceph。工具
1) 確認你使用了合適的內核版本ui
uname -r //CentOS 內核要求 3.10.*
2) 安裝 NPTcode
# sudo yum install ntp ntpdate ntp-doc
3) 安裝 SSHorm
# sudo yum install openssh-server
4) 建立新用戶server
# sudo useradd -d /home/zeng -m zeng # sudo passwd zeng
5) 確保新用戶有 sudo 權限
# echo "zeng ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/zeng # sudo chmod 0440 /etc/sudoers.d/zeng
6) 在管理節點上,將 ceph-client 添加到管理節點的 hosts 文件
$ sudo echo '192.168.0.134 ceph-client' >> /etc/hosts
7) 在管理節點上,容許管理節點無密碼登陸 ceph-client
$ ssh-copy-id zeng@ceph-client
8) 在管理節點上,經過 ceph-deploy 把 Ceph 安裝到 ceph-client 節點
$ cd /home/zeng/my-cluster $ ceph-deploy install ceph-client
9) 在管理節點上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷貝到 ceph-client 。
$ ceph-deploy admin ceph-client
10) 修改密鑰文件的權限
ceph-deploy 工具會把密鑰環複製到 /etc/ceph 目錄,要確保此密鑰環文件有讀權限:
# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
在 ceph-client 節點上操做。
1) 建立塊設備映像 {pool-name}/{image-name}
存儲池相關操做,能夠參考 存儲池
$ ceph osd pool create mypool 128
$ rbd create --size 1024 mypool/myimage --image-feature layering $ rbd ls mypool $ rbd info mypool/myimage rbd image 'myimage': size 1024 MB in 256 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.31d606b8b4567 format: 2 features: layering flags: // 這裏經過 --image-feature layering 指定了 features: layering,不然 map 可能出錯 // 也能夠將 rbd_default_features = 1 添加到 /etc/ceph/ceph.conf 的 [global]
2) 映射塊設備 {pool-name}/{image-name}
$ sudo rbd map mypool/myimage --id admin /dev/rbd0 # 注:rbd0 說明這是映射的第一個塊設備 $ rbd showmapped id pool image snap device 0 mypool myimage - /dev/rbd0 # 說明 myimage 映射到了 /dev/rbd0
事實上,建立的塊設備映像,就在 /dev/rbd/{pool-name}/
下:
$ cd /dev/rbd/mypool $ ll lrwxrwxrwx. 1 root root 10 10月 25 09:34 myimage -> ../../rbd0
3) 使用塊設備 /dev/rbd/{pool-name}/{image-name}
建立文件系統
$ sudo mkfs.xfs /dev/rbd/mypool/myimage
此命令可能耗時較長。
4) 將該文件系統掛載到 /mnt/ceph-block-device
文件夾下
$ sudo mkdir /mnt/ceph-block-device $ sudo mount /dev/rbd/mypool/myimage /mnt/ceph-block-device $ df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 17G 1.3G 16G 8% / devtmpfs 910M 0 910M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.4M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 1014M 142M 873M 14% /boot tmpfs 184M 0 184M 0% /run/user/1000 /dev/rbd0 976M 2.6M 958M 1% /mnt/ceph-block-device
此時,就能夠使用 /mnt/ceph-block-device
這個目錄了。
5) 塊設備擴容
//調整塊設備大小爲20G $ rbd resize --size 20480 mypool/myimage Resizing image: 100% complete...done. //支持文件系統在線擴容 $ sudo resize2fs /dev/rbd0 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/rbd0 is mounted on /mnt/ceph-block-device; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 3 The filesystem on /dev/rbd0 is now 5242880 blocks long. //發現 /dev/rbd0 的容量變爲20G [zeng@ceph-client mnt]$ df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 17G 1.3G 16G 8% / devtmpfs 910M 0 910M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.4M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 1014M 142M 873M 14% /boot tmpfs 184M 0 184M 0% /run/user/1000 /dev/rbd0 20G 5.4M 19G 1% /mnt/ceph-block-device
6) 解掛文件系統
$ sudo umount /mnt/ceph-block-device
若是解掛提示"device is busy",則先執行:
$ sudo yum install psmisc $ fuser -m /mnt/ceph-block-device $ kill -9 PID
7) 取消塊設備映射
$ sudo rbd unmap /dev/rbd/mypool/myimage $ rbd showmapped
8) 刪除塊設備
$ rbd rm mypool/myimage Removing image: 100% complete...done. $ rbd ls mypool