一 基础准备

  • 参考《002.Ceph安装部署》文档部署一个基础集群;
  • 新增节点主机名及IP在deploy节点添加解析:
 [root@deploy ~]# echo "172.24.8.75 cephclient" >>/etc/hosts
  • 配置国内yum源:
 [root@cephclient ~]# yum -y update
[root@cephclient ~]# rm /etc/yum.repos.d/* -rf
[root@cephclient ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@cephclient ~]# yum -y install epel-release
[root@cephclient ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
[root@cephclient ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
[root@cephclient ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 

二 块设备

2.1 添加普通用户

 [root@cephclient ~]# useradd -d /home/cephuser -m cephuser
[root@cephclient ~]# echo "cephuser" | passwd --stdin cephuser #cephclient节点创建cephuser用户
[root@cephclient ~]# echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser
[root@cephclient ~]# chmod 0440 /etc/sudoers.d/cephuser
[root@deploy ~]# su - manager
[manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.75
 

2.2 安装ceph-client

 [root@deploy ~]# su - manager
[manager@deploy ~]$ cd my-cluster/
[manager@deploy my-cluster]$ vi ~/.ssh/config
Host node1
Hostname node1
User cephuser
Host node2
Hostname node2
User cephuser
Host node3
Hostname node3
User cephuser
Host cephclient
Hostname cephclient #新增cephclient节点信息
User cephuser
[manager@deploy my-cluster]$ ceph-deploy install cephclient #安装Ceph
 
注意:若使用ceph-deploy部署的时候出现安装包无法下载,可在部署时候指定ceph.repo为国内源:
 ceph-deploy install cephclient --repo-url=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc
 [manager@deploy my-cluster]$ ceph-deploy admin cephclient
提示:为方便后期deploy节点管理cephclient,在CLI中使用命令中简化相关key的输出,可将key复制至相应节点。ceph-deploy 工具会把密钥环复制到/etc/ceph目录,要确保此密钥环文件有读权限(如 sudo chmod +r /etc/ceph/ceph.client.admin.keyring )。

2.3 创建pool

 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool create mytestpool 64

2.4 初始化pool

 [root@cephclient ~]# ceph osd lspools
[root@cephclient ~]# rbd pool init mytestpool
 

2.5 创建块设备

 [root@cephclient ~]# rbd create mytestpool/mytestimages --size 4096 --image-feature layering

2.6 确认验证

 [root@cephclient ~]# rbd ls mytestpool
mytestimages
[root@cephclient ~]# rbd showmapped
id pool image snap device
0 mytestpool mytestimages - /dev/rbd0
[root@cephclient ~]# rbd info mytestpool/mytestimages
 

2.7 将image映射为块设备

 [root@cephclient ~]# rbd map mytestpool/mytestimages --name client.admin
/dev/rbd0
 

2.8 格式化设备

 [root@cephclient ~]# mkfs.ext4 /dev/rbd/mytestpool/mytestimages
[root@cephclient ~]# lsblk
 

2.9 挂载并测试

 [root@cephclient ~]# sudo mkdir /mnt/ceph-block-device
[root@cephclient ~]# sudo mount /dev/rbd/mytestpool/mytestimages /mnt/ceph-block-device/
[root@cephclient ~]# cd /mnt/ceph-block-device/
[root@cephclient ceph-block-device]# echo 'This is my test file!' >> test.txt
[root@cephclient ceph-block-device]# ls
lost+found test.txt
 

2.10 自动map

 [root@cephclient ~]# vim /etc/ceph/rbdmap
# RbdDevice Parameters
#poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring
mytestpool/mytestimages id=admin,keyring=/etc/ceph/ceph.client.admin.keyring
 

2.11 开机挂载

 [root@cephclient ~]# vi /etc/fstab
#……
/dev/rbd/mytestpool/mytestimages /mnt/ceph-block-device ext4 defaults,noatime,_netdev 0 0
 

2.12 rbdmap开机启动

 [root@cephclient ~]# systemctl enable rbdmap.service
[root@cephclient ~]# df -hT #查看验证
 
提示:若出现开机后依旧无法自动挂载,rbdmap也异常,可如下操作:
 [root@cephclient ~]# vi /usr/lib/systemd/system/rbdmap.service
[Unit]
Description=Map RBD devices
WantedBy=multi-user.target #需要新增此行
#……
 

004.Ceph块设备基础使用的更多相关文章

  1. Ceph 块设备 - 块设备快速入门

    目录 一.准备工作 二.安装 Ceph 三.使用块存储   一.准备工作 本文描述如何安装 ceph 客户端,使用 Ceph 块设备 创建文件系统并挂载使用. 必须先完成 ceph 存储集群的搭建,并 ...

  2. Ceph 块设备 - 命令,快照,镜像

    目录 一.Ceph 块设备 二.块设备 rbd 命令 三.操作内核模块 四.快照基础 rbd snap 五.分层快照 六.镜像 rbd mirror 七.QEMU 八.libvirt 九.Openst ...

  3. Ceph 块存储

    任何普通的linux主机都可以充当ceph客户机,客户机通过网络与ceph存储集群交互以存储或检索用户数据.Ceph RBD支持已经添加到linux主线内核中,从2.6.34以及以后版本开始. === ...

  4. 二十八. Ceph概述 部署Ceph集群 Ceph块存储

    client   :192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13   1.实验环境 准备四台KVM虚 ...

  5. 004 ceph存储池

    介绍:前面已经使用deploy和ansble部署了ceph集群,现在对集群的池进行简单介绍和简单操作 一.部分概念 池是ceph存储集群的逻辑分区,用于存储对象 对象存储到池中时,使用CRUSH规则将 ...

  6. Ceph块设备

    Ceph块设备 来自这里. 块是一个字节序列(例如,一个512字节的数据块).基于块的存储接口是最常见的存储数据的方法,它通常基于旋转介质,像硬盘.CD.软盘,甚至传统的9道磁带. 基本的块设备命令 ...

  7. 学习ceph官网的ceph块设备命令(一)

    一)存储池命令 1.列出存储池 #ceph osd lspools #ceph osd pool ls 2.创建存储池 # ceph osd pool create yhcpool 512 pool ...

  8. ceph 块设备

    数据的存储设备? 数据的存储有3种形式,1种是直接以二进制数据的形式存储在裸设备(包括块设备)上,另外一种是以文件的形式经过文件系统管理进行存储.第三种就是以对象的形式进行对象存储.本篇讨论围绕着块设 ...

  9. Ceph块存储介绍

    1. 块存储是什么 块存储简称RBD(RADOS Block Device),是一种有序的字节序块,也是在Ceph三大存储类型中最为常用的存储方式 ,Ceph的块存储是基于RADOS的,因此它也借助R ...

随机推荐

  1. Confluence 6 € 欧元字符集不能正常显示

    € (euro) 标记 是一个 3 字节字符,在 (UTF-8)中这个字符被表示为 0xE2, 0x82, 0xAC. 有时候,你的系统中没有设置所有的地方为相同的字符集的时候(Confluence, ...

  2. Function types cannot have argument labels 错误解决方案

    今天在封装网络工具类的时候 报错了 经过分析发现是在Swift3.0 把闭包的入参的参数名去掉就好了 正确写法 completion: @escaping (Any?, Bool)->() 错误 ...

  3. ES6学习路上的小学生,promise处理异步操作,简易原始起步之用。先能用,再深究!

    ES6的promise对象,让我们更容易的处理这样的需求:执行完一个方法以后,再去执行下一个方法. 理解尚浅之时,先用于项目之中. var promise1 = new Promise(functio ...

  4. kafka架构浅显理解

    Kafka的概念: 1. AMQP协议 Advanced Message Queuing Protocol (高级消息队列协议) The Advanced Message Queuing Protoc ...

  5. LeetCode(101):对称二叉树

    Easy! 题目描述: 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2, ...

  6. 数据恢复Winhex的核心理念

    一.数据恢复就是寻找有价值的东西,其本质是数据定位,检索技术.存在的有迹可循,毁灭的无影无踪.这就譬如说,一本撕烂的书输的目录不见了,但是内容全在,我们就可以读到内容,但是内容不存在了,也就无法在找到 ...

  7. VisualSVN Server如何安装和使用

    首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html 这是二进制文件 ...

  8. matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量,图片的读入等内容)

    MATLAB部分: xmap = repmat( linspace( -regionW/2, regionW/2, regionW), regionH, 1 );%linspace [x1,x2,N] ...

  9. 处理Task引发的异常

    处理方法:线程启动后,使用try-catch,通过wait或者waitall来捕获异常. 单个Task的情况: System.Threading.Tasks.Task task1 = new Syst ...

  10. python删除列表元素

    1.需求  num = [1,2,2,2,3,4,2,2,2,2,2,2,22,2]把列表中的有2的元素全部删除           2.编程代码 nums = [1,2,2,2,3,4,2,2,2, ...