ceph分布式部署

资源准备

hostname ip desc
master 192.168.100.11 管理节点、监控节点
ceph1 192.168.100.12 ceph节点、OSD节点
ceph2 192.168.100.13 ceph节点、OSD节点
  • 修改主机名
1
hostnamectl set-hostname xxx
  • 设置hosts文件
1
2
3
4
5
6
7
vim /etc/hosts

cat << EOF >> /etc/hosts
192.168.100.11 master
192.168.100.12 node1
192.168.100.13 node2
EOF

ceph集群安装

  • 安装NPT(所有节点)

    1
    2
    # 建议在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障
    yum install ntp ntpdate ntp-doc -y
  • ssh免密登录(master)

    1
    2
    3
    4
    # 创建密钥
    ssh-keygen -t rsa
    # 拷贝密钥
    for i in {12..13};do ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.$i;done
  • 安装ceph和ceph-deploy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 添加yum源
cat << EOF > /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/x86_64/
gpgckeck=0
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
EOF

# 安装ceph(master/node均安装,或者使用ceph-deploy install master node1 node2 安装)
yum install -y ceph (各节点)
yum install -y ceph-deploy (只用在master上安装)
  • 创建文件夹
    1
    2
    3
    # 使用ansible
    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
    yum install ansible -y
1
2
3
4
5
mkdir -p /data/cluster
mkdir -p /data/osd1 # node1上mkdir -p /data/osd2,依次递增
chown -R ceph:ceph /data/osd1
mkdir -p /var/run/ceph
chown -R ceph:ceph /var/run/ceph
  • 初始化ceph

    1
    2
    cd /data/cluster
    ceph-deploy new master
  • 修改ceph配置文件

1
2
3
4
5
6
7
8
vim ceph.conf
[global]
···
···
osd pool default size = 3
osd crush chooseleaf type = 0
osd max object name len = 256
osd journal size = 128
  • 激活Mon节点
1
ceph-deploy mon create-initial
  • 创建OSD节点
1
2
3
4
ceph-deploy osd prepare master:/data/osd1 node1:/data/osd2 node2:/data/osd3

# 启动OSD节点
ceph-deploy osd activate master:/data/osd1 node1:/data/osd2 node2:/data/osd3
  • 拷贝配置
    1
    2
    3
    ceph-deploy admin master node1 node2
    # 增加权限,每台节点上都执行
    chmod +r /etc/ceph/ceph.client.admin.keyring

验证

  • 查看版本

    1
    ceph -v
  • 集群状态

1
2
3
4
5
6
7
8
9
10
11
12
13
# 如果health 显示HEALTH_OK状态说明配置成功
ceph -s 或者ceph status

[root@master ceph-cluster]# ceph -s
cluster be9986fd-5634-46e7-9f5d-56c9af53dc8e
health HEALTH_OK
monmap e1: 1 mons at {master=192.168.100.11:6789/0}
election epoch 3, quorum 0 master
osdmap e14: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds
pgmap v26: 64 pgs, 1 pools, 0 bytes data, 0 objects
743 MB used, 56228 MB / 60091 MB avail
64 active+clean

使用ceph服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建foo测试
# 需要创建 rbd image,image是Ceph 块设备中的磁盘映像文件,可使用 rbd create XX命令创建指定大小的映像
rbd create foo --size 1024 --pool rbd --image-format=1 # 单位MB

# 检查rbd image
rbd ls

# 映像映射到内核
rbd map foo

# 检查挂载状态
fdisk -l

[root@master ceph-cluster]# rbd create foo --size 1024 --pool rbd --image-format=1
rbd: image format 1 is deprecated
[root@master ceph-cluster]#
[root@master ceph-cluster]# rbd ls
foo
[root@master ceph-cluster]# rbd map foo
/dev/rbd0

分区格式化

1
2
3
4
5
6
7
8
9
# 格式化文件系统
mkfs.ext4 /dev/rbd0

# 挂载文件
mkdir -p /mnt/rbd
mount /dev/rbd0 /mnt/rbd

# 查看挂载
df -hT

释放资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 卸载文件
umount /mnt/rbd

# 卸载rbd image
rbd unmap foo

# 检查卸载结果
df -hT
fdisk -l

# 删除rbd image
rbd remove foo
[root@master ceph-cluster]# rbd remove foo
Removing image: 100% complete...done.

rbd ls
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。