**
1.基础环境配置**
创建3个CentOS 7系统虚拟机(按具体情况),并修改hostname叫node1、node2和node3。
每个ceph节点需要有空闲的磁盘。我这边给每个节点挂载了50G的硬盘
[root@node1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
vdb 253:16 0 50G 0 disk
[root@node2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
vdb 253:16 0 50G 0 disk
[root@node3 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
vdb 253:16 0 50G 0 disk
修改域名解析,将三个节点的ip添加到各个节点的/etc/hosts配置文件中
[root@node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.9 node1
10.0.0.10 node2
10.0.0.11 node3
在node1上生成ssh,将它复制到node2,node3节点
# ssh-keygen
# ssh-copy-id node2
# ssh-copy-id node3
关闭每个节点的防火墙和selinux
#systemctl stop firewalld
#systemctl disable firewalld
#setenforce 0 //临时关闭selinux
永久关闭将/etc/selinux/config中的SELINUX=enforcing改为SELINUX=disabled,然后重启
2.安装和配置Ceph
要部署这个集群,需要使用ceph-deploy工具在3台虚拟机上安装和配置Ceph。ceph-deploy是Ceph软件定义存储系统的一部分,用来方便地配置和管理Ceph存储集群。
(1)创建Ceph集群
首先,在ceph-node1上安装Ceph,并配置它为Ceph monitor和OSD节点。
① 在node1上安装ceph-deploy。
#yum install ceph-deploy -y
② 通过在node1上执行以下命令,用ceph-deploy创建一个Ceph集群
# mkdir /etc/ceph
# cd /etc/ceph
#ceph-deploy new node1
③ ceph-deploy的new子命令能够部署一个默认名称为Ceph的新集群,并且它能生成集群配置文件和密钥文件。列出当前的工作目录,可以查看到ceph.conf和ceph.mon.keying文件。
[root@node1 ceph]# ll
total 12
-rw-r--r-- 1 root root 223 Jan 10 20:26 ceph.conf
-rw-r--r-- 1 root root 2892 Jan 10 20:26 ceph.log
-rw------- 1 root root 73 Jan 10 20:26 ceph.mon.keyring
④ 在node1上执行以下命令,使用ceph-deploy工具在所有节点上安装Ceph二进制软件包。
# ceph-deploy install node1 node2 node3
# ceph -v //查看版本
⑥ 在node1上创建第一个Ceph monitor。
# ceph-deploy --overwrite-conf mon create-initial
⑦ Monitor创建成功后,检查集群的状态,这个时候Ceph集群并不处于健康状态。
[root@node1 ceph]# ceph -s
cluster 2571d326-bd82-4497-9939-9dfd5741b108
health HEALTH_ERR //这里显示err 状态错误
monmap e1: 1 mons at {node1=10.0.0.9:6789/0}
election epoch 2, quorum 0 node1
osdmap e13: 3 osds: 3 up, 3 in
pgmap v20: 64 pgs, 1 pools, 0 bytes data, 0 objects
15459 MB used, 134 GB / 149 GB avail
64 active+clean
2)创建OSD
① 列出node1上所有的可用磁盘。
[root@node1 ceph]# ceph-deploy disk list node1
[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO ] Invoked (1.5.31): /usr/bin/ceph-deploy disk list node1
[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] subcommand : list
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f5b40a4c7a0>
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] func : <function disk at 0x7f5b40a42398>
[ceph_deploy.cli][INFO ] ceph_conf : None
[ceph_deploy.cli][INFO ] default_release : False
[ceph_deploy.cli][INFO ] disk : [('node1', None, None)]
[node1][DEBUG ] connected to host: node1
[node1][DEBUG ] detect platform information from remote host
[node1][DEBUG ] detect machine type
[node1][DEBUG ] find the location of an executable
[ceph_deploy.osd][INFO ] Distro info: CentOS Linux 7.1.1503 Core
[ceph_deploy.osd][DEBUG ] Listing disks on node1...
[node1][DEBUG ] find the location of an executable
[node1][INFO ] Running command: /usr/sbin/ceph-disk list
[node1][DEBUG ] /dev/vda :
[node1][DEBUG ] /dev/vda1 other, xfs, mounted on /
[node1][DEBUG ] /dev/vdb :
[node1][DEBUG ] /dev/vdb1 other, xfs, mounted on /opt/osd1
② 创建共享磁盘,3个节点都要执行。首先对系统上的空闲硬盘进行分区、格式化、挂载的操作。
# fdisk /dev/vdb //输入n一直按回车,然后wq保存退出
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x34447d2b.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-104857599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
可以使用lsblk命令,查看分区情况
[root@node1 ceph]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
vdb 253:16 0 50G 0 disk
└─vdb1 253:17 0 50G 0 part /opt/osd1
给分区格式化,每个节点都做
# mkfs.xfs /dev/vdb1
在node1创建一个目录叫/opt/osd1,挂载分区到目录,最后将该目录的权限提升到777。(node2和node3同理,分别创建/opt/osd2,/opt/osd3,挂载分区到目录,将权限提升777,这里只演示node1)
# mkdir /opt/osd1
# mount /dev/vdb1 /opt/osd1/
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.1G 19G 6% /
devtmpfs 984M 0 984M 0% /dev
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 1001M 17M 985M 2% /run
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/vdb1 50G 33M 50G 1% /opt/osd1
# chmod 777 /opt/osd1/
③ 在node1节点使用ceph-deploy工具创建OSD节点。
# cd /etc/ceph/
# ceph-deploy osd prepare node1:/opt/osd1 node2:/opt/osd2 node3:/opt/osd3
④ 在node1节点使用ceph-deploy工具激活OSD节点。在激活OSD节点前,把创建的三个节点上的osd1、osd2、osd3目录中的文件权限改为777。(只演示node1)
[root@node1 ceph]# cd /opt/osd1/
[root@node1 osd1]# ll
total 16
-rw-r--r-- 1 root root 37 Jan 10 20:50 ceph_fsid
-rw-r--r-- 1 root root 2039 Jan 10 20:49 ceph.log
-rw-r--r-- 1 root root 37 Jan 10 20:50 fsid
-rw-r--r-- 1 root root 21 Jan 10 20:50 magic
[root@node1 osd1]# chmod 777 *
[root@node1 osd1]# ll
total 16
-rwxrwxrwx 1 root root 37 Jan 10 20:50 ceph_fsid
-rwxrwxrwx 1 root root 2039 Jan 10 20:49 ceph.log
-rwxrwxrwx 1 root root 37 Jan 10 20:50 fsid
-rwxrwxrwx 1 root root 21 Jan 10 20:50 magic
接下来开始激活osd节点
# cd /etc/ceph/
# ceph-deploy osd activate node1:/opt/osd1 node2:/opt/osd2 node3:/opt/osd3
⑤ 检查Ceph集群的状态。此时,集群是HEALTH_OK状态。
[root@node1 ceph]# ceph -s
cluster 2571d326-bd82-4497-9939-9dfd5741b108
health HEALTH_OK
monmap e1: 1 mons at {node1=10.0.0.9:6789/0}
election epoch 2, quorum 0 node1
osdmap e13: 3 osds: 3 up, 3 in
pgmap v18: 64 pgs, 1 pools, 0 bytes data, 0 objects
15459 MB used, 134 GB / 149 GB avail
64 active+clean
⑥ 开放权限给其他节点,进行灾备处理。
# ceph-deploy admin node{1,2,3}
(3)Ceph集群运维
有了可运行的Ceph集群后,现在可以用一些简单的命令来体验Ceph。
① 检查Ceph的安装状态。
# ceph status
② 观察集群的健康状况。
# ceph -w
③ 检查Ceph monitor仲裁状态。
# ceph quorum_status --format json-pretty
④ 导出Ceph monitor信息。
# ceph mon dump
⑤ 检查集群使用状态。
# ceph df
⑥ 检查Ceph Monitor、OSD和PG(配置组)状态。
# ceph mon stat
# ceph osd stat
# ceph pg stat
⑦ 列表PG。
# ceph pg dump
⑧ 列表Ceph存储池。
# ceph osd lspools
⑨ 检查OSD的CRUSH。
# ceph osd tree
⑩ 列表集群的认证密钥。
# ceph auth list