Ceph集群
官方网站:http://ceph.com
https://github.com/ceph
环境:
CentOS7.2
ceph10.2.5
192.168.8.254 (admin/client node)
192.168.8.101 (mon node)
192.168.8.102 (ceph node)
192.168.8.103 (ceph node)
基础环境
http://docs.ceph.com/docs/master/start/
一.安装ceph-deploy(admin node)
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
cat >/etc/yum.repos.d/ceph.repo <<HERE
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
HERE
提示:ceph-deploy仅仅是一个python脚本,用来管理和部署ceph。
版本选择最新的LTS版 Jewel http://docs.ceph.com/docs/master/releases/
yum -y install ceph-deploy
二.基本设置
1.ntp,ssh(所有节点)
yum -y install ntp ntpdate openssh-server openssh-client
ssh通常默认己安装,ntp指向内网ntp server,具体配置略
2.创建ceph-deploy管理用户(所有节点)
useradd -r -m ceph
echo ceph:ceph|chpasswd
echo "ceph ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/ceph
chmod 0440 /etc/sudoers.d/ceph
3.免密码登录(admin node)
su - ceph
ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa -q -b 2048
ssh-copy-id 192.168.8.254
ssh-copy-id 192.168.8.101
ssh-copy-id 192.168.8.102
ssh-copy-id 192.168.8.103
在admin节点上用ceph用户在所有节点上做免密码认证
提示:避免每次ceph-deploy时指定--username参数,可以添加如下
cat >~/.ssh/config <<HERE
Host 192.168.8.254
Host 192.168.8.101
Host 192.168.8.102
Host 192.168.8.103
HERE
chmod 0644 ~/.ssh/config
4.ceph-deploy管理用户不强制tty登录(所有节点)
sed -i '/Defaults
存储集群
添加hosts记录,方便后续操作
192.168.8.254 client-node client.example.com
192.168.8.254 admin-node admin.example.com
192.168.8.101 node1 node1.example.com
192.168.8.102 node2 node2.example.com
192.168.8.103 node3 node3.example.com
集群管理都在admin node节点上操作
一.初始化集群
http://docs.ceph.com/docs/master/start/quick-ceph-deploy/
1.创建monitor
su - ceph
mkdir my-cluster
cd my-cluster
ceph-deploy new node1
[ceph@router my-cluster]$ pwd
/home/ceph/my-cluster
[ceph@router my-cluster]$ ls
ceph.conf
注意:monitor在整个集群中应以奇数个数存在
http://docs.ceph.com/docs/master/rados/configuration/mon-config-ref/
cat ~/my-cluster/ceph.conf
[global]
fsid = 9a776b16-1e40-45de-a66b-afd4ba689fd5
mon_initial_members = node1
mon_host = 192.168.8.101
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
3.安装ceph
ceph-deploy purgedata admin-node node1 node2 node3
ceph-deploy install admin-node node1 node2 node3
提示:如果己做好了本地yum源,也可直接在节点上执行 yum -y install ceph ceph-radosgw来安装
4.初始化monitor节点
ceph-deploy mon create-initial
[ceph@router my-cluster]$ ls
ceph.bootstrap-mds.keyring
ceph.bootstrap-osd.keyring
初始化完成会生成4个keyring文件
5.添加osd磁盘
node2 /dev/vdb
node3 /dev/vdb
kvm虚拟,各添加10T的磁盘/dev/vdb
6.激活osd磁盘
ceph-deploy osd prepare node2:/dev/vdb node3:/dev/vdb
ceph-deploy osd activate node2:/dev/vdb1 node3:/dev/vdb1
ceph-deploy osd list node2 node3
提示: 可以直接ceph-deploy osd create完成上述的prepare和activate。
重复做实验可以先还原后再创建,如
删除现有分区表和磁盘内容
ceph-deploy disk zap node1:sdb
node1:sdc node1:sdd
ceph-deploy disk zap node2:sdb
node2:sdc node2:sdd
ceph-deploy disk zap node3:sdb
node3:sdc node3:sdd
准备并激活磁盘
ceph-deploy osd create
node1:sdb node1:sdc node1:sdd
ceph-deploy osd create
node2:sdb node2:sdc node2:sdd
ceph-deploy osd create
node3:sdb node3:sdc node3:sdd
磁盘默认会格式化为带Journal xfs文件系统的两个分区7.同步配置文件到集群节点
ceph-deploy admin admin-node node1 node2 node3
实际上是把~/my-cluster/ceph.conf等配置文件同步到了各节点的/etc/ceph/目录下
[ceph@router my-cluster]$ ls /etc/ceph/
ceph.client.admin.keyring
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
保证配置文件有正确的权限,很重要,可能同步后要再次添加ceph用户的读权限
8.检查ceph集群状态
[ceph@router my-cluster]$ ceph -s
默认的pg数太小,会提示HEALTH_WARN,可以手动调大
ceph osd pool set rbd pg_num 256
ceph osd pool set rbd pgp_num 256
二.扩展集群
1.增加osd
ceph-deploy osd create node1:/dev/vdb
2.增加metadata server
ceph-deploy mds create node1
3.增加monitor
http://docs.ceph.com/docs/master/rados/deployment/ceph-deploy-mon/
http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/
i.添加网络配置
[ceph@router my-cluster]$ cat ceph.conf
[global]
fsid = 708da694-8089-4cc5-926a-6642a3e38100
mon_initial_members = node1
mon_host = 192.168.8.101
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
public network = 192.168.8.0/24
注意:往己存在的cluster里添加monitor时,需要修改配置文件ceph.conf在global章节中指定public network或者mon.章节中指定public addr,配置文件中写成代下划线的public_network =也是可以的。
ii.同步配置并添加monitor
ceph-deploy --overwrite-conf mon add node2
ceph-deploy --overwrite-conf mon add node3
ceph quorum_status --format json-pretty
[ceph@router my-cluster]$ ceph quorum_status --format json-pretty
{