环境准备
机器名 | IP | 软件 | 备注 |
---|---|---|---|
cephnode01 | 10.0.0.170 | ||
cephnode02 | 10.0.0.171 | ||
cephnode03 | 10.0.0.172 |
关闭NetworkManager
systemctl disable NetworkManager && systemctl stop NetworkManager
添加主机名与IP对应关系:
cat >> /etc/hosts << EOF
10.0.0.170 cephnode01
10.0.0.171 cephnode02
10.0.0.172 cephnode03
EOF
同步网络时间和修改时区
systemctl restart chronyd.service && systemctl enable chronyd.service
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置文件描述符
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
内核参数优化
cat >> /etc/sysctl.conf << EOF
kernel.pid_max = 4194303
vm.swappiness = 0
EOF
sysctl -p
在cephnode01
上配置免密登录到cephnode02
、cephnode03
ssh-keygen -t rsa
ssh-copy-id root@cephnode02
ssh-copy-id root@cephnode03
read_ahead
,通过数据预读并且记载到随机访问内存方式提高磁盘读操作
echo "8192" > /sys/block/sdb/queue/read_ahead_kb
先做一个快照便于恢复
I/O Scheduler
,SSD
要用noop
,SATA/SAS
使用deadline
echo "deadline" >/sys/block/sdb/queue/scheduler
#echo "noop" >/sys/block/sdb/queue/scheduler
安装Ceph集群
1、编辑内网yum源,将yum源同步到其它节点并提前做好yum makecache
cat >> /etc/yum.repos.d/ceph.repo << EOF
[Ceph]
name=Ceph packages for \$basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/\$basearch
gpgcheck=0
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1
EOF
手动部署:https://docs.ceph.com/en/latest/install/index_manual/
2、安装ceph-deploy,在node01
执行(确认ceph-deploy版本是否为2.0.1,)
yum install -y ceph-deploy
3、创建一个my-cluster目录,所有命令在此目录下进行,在node01执行(文件位置和名字可以随意)
mkdir /my-cluster
cd /my-cluster
4、安装依赖包
yum install python-setuptools
5、创建一个Ceph集群,在node01执行
ceph-deploy new cephnode01 cephnode02 cephnode03
6、安装Ceph软件(每个节点执行)
yum -y install epel-release
yum install -y ceph
7、生成monitor检测集群所使用的的秘钥
ceph-deploy mon create-initial
8、安装Ceph CLI,方便执行一些管理命令
ceph-deploy admin cephnode01 cephnode02 cephnode03
9、配置mgr,用于管理集群
ceph-deploy mgr create cephnode01 cephnode02 cephnode03
10、部署rgw
以后要新加rgw时只需要找一台机器安装ceph-radosgw
,然后再执行ceph-deploy rgw create <nodename>
添加到集群即可。
yum install -y ceph-radosgw
ceph-deploy rgw create cephnode01
11、部署MDS(CephFS)
您暂时无权查看此隐藏内容!
12、添加osd
您暂时无权查看此隐藏内容!
以后新加硬盘,只需要执行以上命令,注意磁盘块文件路径和机器名
添加磁盘是一个非常高风险的事情,不要一次性添加大量的磁盘,这会导致集群内部发生很大的变化,集群内部会产生大量的读写,就很可能会影响性能,集群性能差就可能会出现一些block,夯死的一些状态。集群访问会很慢,建议一块盘或两块盘来添加,盘越大的话,一块一块的加,要谨慎操作。
常用命令
ceph -s # 查看集群状态
ceph osd df # 查看osd容量
盘添加完后,数据平衡完状态中会显示HEALTH_OK
,默认是三副本,所以最少要三个节点
查看集群状态
[root@cephnode01 my-cluster]# ceph -s
cluster:
id: fdeb2587-505e-4eec-9561-2789e351c201
health: HEALTH_OK
services:
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 9m)
mgr: cephnode01(active, since 7m), standbys: cephnode03, cephnode02
mds: 3 up:standby
osd: 3 osds: 3 up (since 35s), 3 in (since 35s)
rgw: 1 daemon active (cephnode01)
task status:
data:
pools: 4 pools, 128 pgs
objects: 187 objects, 1.2 KiB
usage: 3.0 GiB used, 147 GiB / 150 GiB avail
pgs: 128 active+clean
io:
recovery: 0 B/s, 2 objects/s
集群时间必须同步,否则会出现以下错误
ceph配置文件
1、该配置文件采用init文件语法,#和;为注释,ceph集群在启动的时候会按照顺序加载所有的conf配置文件。 配置文件分为以下几大块配置。
global:全局配置。
osd:osd专用配置,可以使用osd.N,来表示某一个OSD专用配置,N为osd的编号,如0、2、1等。
mon:mon专用配置,也可以使用mon.A来为某一个monitor节点做专用配置,其中A为该节点的名称,ceph-monitor-2、ceph-monitor-1等。使用命令 ceph mon dump可以获取节点的名称。
client:客户端专用配置。
2、配置文件可以从多个地方进行顺序加载,如果冲突将使用最新加载的配置,其加载顺序为。
$CEPH_CONF环境变量
-c 指定的位置
/etc/ceph/ceph.conf
~/.ceph/ceph.conf
./ceph.conf
3、配置文件还可以使用一些元变量应用到配置文件,如。
$cluster:当前集群名。
$type:当前服务类型。
$id:进程的标识符。
$host:守护进程所在的主机名。
$name:值为$type.$id。
4、ceph.conf详细参数
您暂时无权查看此隐藏内容!
感谢分享啊。
感谢分享,实战性强
赞