一、准备工作

本文描述如何安装 ceph 客户端,使用 Ceph 块设备 创建文件系统并挂载使用。

必须先完成 ceph 存储集群的搭建,并确保 Ceph 存储集群处于 active + clean 状态,这样才能使用 Ceph 块设备。

Ceph 块设备也叫 RBD 或 RADOS 块设备。

hostname ip
admin-node 192.168.0.130
ceph-client 192.168.0.134

注:你可以在虚拟机上运行 ceph-client 节点,但是不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行下列步骤。

 

二、安装 Ceph

ceph-client 节点安装 Ceph。

  1. 确认你使用了合适的内核版本
uname -r
//CentOS 内核要求 3.10.*
  1. 安装 NPT
# sudo yum install ntp ntpdate ntp-doc
  1. 安装 SSH
# sudo yum install openssh-server
  1. 创建新用户
# sudo useradd -d /home/zeng -m zeng
# sudo passwd zeng
  1. 确保新用户有 sudo 权限
# echo "zeng ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/zeng
# sudo chmod 0440 /etc/sudoers.d/zeng
  1. 在管理节点上,将 ceph-client 添加到管理节点的 hosts 文件
$ sudo echo '192.168.0.134 ceph-client' >> /etc/hosts
  1. 在管理节点上,允许管理节点无密码登录 ceph-client
$ ssh-copy-id zeng@ceph-client
  1. 在管理节点上,通过 ceph-deploy 把 Ceph 安装到 ceph-client 节点
$ cd /home/zeng/my-cluster
$ ceph-deploy install ceph-client
  1. 在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client 。
$ ceph-deploy admin ceph-client
  1. 修改密钥文件的权限

    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]
  1. 映射块设备 {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
  1. 使用块设备 /dev/rbd/{pool-name}/{image-name} 创建文件系统
$ sudo mkfs.xfs /dev/rbd/mypool/myimage

此命令可能耗时较长。

  1. 将该文件系统挂载到 /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 这个目录了。

  1. 块设备扩容
//调整块设备大小为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
  1. 解挂文件系统
$ sudo umount /mnt/ceph-block-device

如果解挂提示"device is busy",则先执行:

$ sudo yum install psmisc
$ fuser -m /mnt/ceph-block-device
$ kill -9 PID
  1. 取消块设备映射
$ sudo rbd unmap /dev/rbd/mypool/myimage
$ rbd showmapped
  1. 删除块设备
$ rbd rm mypool/myimage
Removing image: 100% complete...done. $ rbd ls mypool

Ceph 块设备 - 块设备快速入门的更多相关文章

  1. 006 管理Ceph的RBD块设备

    一, Ceph RBD的特性 支持完整和增量的快照 自动精简配置 写时复制克隆 动态调整大小 二.RBD基本应用 2.1 创建RBD池 [root@ceph2 ceph]# ceph osd pool ...

  2. 我们为什么选择Ceph来建立块存储

    我们为什么选择Ceph来建立块存储?国内知名黑客组织东方联盟是这样回答的,卷管理器的大小和增长受到管理程序的驱动器补充的限制,与其他Droplet共享.一旦Droplet被摧毁,储存就会被释放.术语“ ...

  3. android设备局域网中快速搜索之cling方式

    cling方式就像pc端windows局域网工作组刷新显示一样,原来用过扫描ip地址的方式,可以使用就是有点慢,还有一种自己加入组广播,通过发送组广播的方式.   android设备局域网中快速搜索之 ...

  4. html5快速入门(一)—— html简介

    前言: 1.HTML5的发展非常迅速,可以说已经是前端开发人员的标配,在电商类型的APP中更是运用广泛,这个系列的文章是本人自己整理,尽量将开发中不常用到的剔除,将经常使用的拿出来,使需要的朋友能够真 ...

  5. 快速入门系列--MVC--07与HTML5移动开发的结合

    现在移动互联网的盛行,跨平台并兼容不同设备的HTML5越来越盛行,很多公司都在将自己过去的非HTML5网站应用渐进式的转化为HTML5应用,使得一套代码可以兼容不同的物理终端设备和浏览器,极大的提高了 ...

  6. Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...

  7. Linux快速入门02-文件系统管理

    继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...

  8. jumpservice配置:快速入门

    快速入门 说明 到 Jumpserver 会话管理-终端管理 查看 Coco Guacamole 等应用是否在线 一.系统设置 1.1 基本设置 # 修改 url 的"localhost&q ...

  9. CUDA编程之快速入门

    CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构.做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要 ...

  10. Hadoop生态圈-Hive快速入门篇之Hive环境搭建

    Hadoop生态圈-Hive快速入门篇之Hive环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据仓库(理论性知识大多摘自百度百科) 1>.什么是数据仓库 数据 ...

随机推荐

  1. windows类型

    _IN_ 输入型参数  _OUT_ 输出型参数 typedef unsigned long DWORD;//double wordtypedef int BOOL;//因为cpu原因4字节的int运行 ...

  2. poj 1753 2965

    这两道题类似,前者翻转上下左右相邻的棋子,使得棋子同为黑或者同为白.后者翻转同行同列的所有开关,使得开关全被打开. poj 1753 题意:有一4x4棋盘,上面有16枚双面棋子(一面为黑,一面为白), ...

  3. ASP.NET Web API 框架研究 Web Host模式下的消息处理管道

    寄宿的作用是开启一个进程为Web API提供一个运行环境以解决持续监听.请求监听和响应回复,即将接收到的请求转换成HttpRequestMessage对象传入管道,并将管道生成并经过处理后的HttpR ...

  4. A - Class Statistics

    A - Class Statistics Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Subm ...

  5. DOS和批处理基本命令

    http://www.cnblogs.com/leizhao/archive/2013/03/07/2949026.html 1.rem和:: rem注释命令,该命令后的内容不被执行,但能回显 ::注 ...

  6. string转Date转回String(JAVA)

    String dateString = "2012-12-06 ";   SimpleDateFormat sdf = new SimpleDateFormat("yyy ...

  7. ZOJ 1259 Rails

    stack的应用 #include<iostream> #include<cstdio> #include<stack> using namespace std; ...

  8. 怎么找到与你Eclipse匹配的spring tool suite插件

    在Eclipse中安装插件是很简单的,但是某些插件需要与你的Eclipse的版本对应才能用,比如spring的插件. 首先,查看你的Eclipse的版本. 从eclipse的Help菜单的About ...

  9. 工作随笔——获取当前Java程序PID

    小知识,记录下: JVM:1.8 // spring boot 中可以使用 String pid = ManagementFactory.getRuntimeMXBean().getSystemPro ...

  10. ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下

    先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)?  什么是依赖注入(DI) 可以点击下面链接 ...