ceph 快速安装


架构 

ceph-deploy/ceph-admin: 192.168.1.214

ceph node 192.168.1.215/216/217

mon 215

osd 216/217



一、操作1.214

ceph-deploy : 192.168.1.214



安装rpm源

yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*


vim /etc/yum.repos.d/ceph.repo ceph-release 是稳定版的版本名, distro 是发行版名字


举例

baseurl=http://download.ceph.com/rpm-jewel/el7/noarch 
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc



安装ceph-deploy 

yum install ceph-deploy -y


useradd ceph-admin

ssh-kengen

把生成的公钥拷贝到每个节点


ssh-copy-id [email protected]/216/217



简化 ssh 和 scp 的用法,不用每次执行ceph-deploy的时候指定username

vi /home/ceph-admin/.ssh/config
Host host215
   Hostname 192.168.1.215
   User cephcluster
Host host216
   Hostname 192.168.1.216
   User cephcluster
Host host217
   Hostname 192.168.1.217
   User cephcluster
   
chmod 600 config



ceph-node 


因为 ceph-deploy 不支持输入密码,所以在所有节点,创建用户,有sudo权限,

useradd cephcluster
pssh -h testhost -i "echo cephcluster|sudo passwd --stdin cephcluster"
sed  -i '/wheel:x/s/$/,cephcluster/' /etc/group


mkdir -p /home/cephcluster/.ssh


集群命令


清除配置

ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys


用下列命令可以连 Ceph 安装包一起清除

ceph-deploy purge {ceph-node} [{ceph-node}]


1、创建集群

ceph-deploy new host215


2、配置文件设置

vi ceph.conf

[global]
fsid = 9f08666b-6725-4593-90c0-b361ca17e924
mon_initial_members = host215
mon_host = 192.168.1.215
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
#修改osd 默认数量为2,之前是3
osd pool default size = 2
#公共网
public network = 192.168.1.0/24
#集群网  OSD 将把心跳、对象复制和恢复流量路由到集群网,与单个网络相比这会提升性能
cluster network = 192.168.6.0/22


3、安装集群

ceph-deploy install host214 host215 host216 host217



4、安装mon节点

ceph-deploy mon create-initial


有如下报错是因为 systemd版本太低,不支持enable service@写法,需要升级mon节点的systemd,

顺便把所有node节点也升级下,否则后面的激活osd 也会报错

yum install systemd -y
[host215][INFO  ] Running command: sudo systemctl enable ceph.target
[host215][INFO  ] Running command: sudo systemctl enable ceph-mon@host215
[host215][WARNIN] Failed to issue method call: No such file or directory
[host215][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy.mon][ERROR ] Failed to execute command: systemctl enable ceph-mon@host215
[ceph_deploy][ERROR ] GenericError: Failed to create 1 monitors


5、磁盘管理(osd)

查看磁盘

ceph-deploy disk list host216 host217


擦净磁盘(这是裸盘配置,一定要确实磁盘名称,这会删除所有数据)

ceph-deploy disk zap host217:sdb 
ceph-deploy disk zap host216:sdb



准备osd:

原始命令:

ceph-deploy osd prepare {node-name}:{data-disk-partition}[:{journal-disk-partition}]

data-disk-partition:是数据存储的地方

journal-disk-partition:是日志存储的地方


优化:可以把日志存储指定另外的驱动器,当然最好是另一块ssd,目前是把日志放到osd数据盘,但是有性能损耗

ceph-deploy osd prepare host216:sdb:/dev/ssd
ceph-deploy osd prepare host217:sdb:/dev/ssd


激活osd:

ceph-deploy osd activate host216:sdb1:/dev/ssd
ceph-deploy osd activate host217:sdb1:/dev/ssd


创建osd:

可以用 create 命令一次完成准备 OSD 、部署到 OSD 节点、并激活它。 create 命令是依次执行 prepare 和 activate 命令的集合

ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}]
ceph-deploy osd create host216:sdb:/dev/ssd
ceph-deploy osd create host217:sdb:/dev/ssd



用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

ceph-deploy admin host214 host215 host216 host217


确保对 ceph.client.admin.keyring 有正确的操作权限

chmod +r /etc/ceph/ceph.client.admin.keyring


检查集群的健康状况

ceph health



扩展集群(将218 加入osd,216/217 添加mon)

218 加入集群,添加osd

安装ceph步骤同上

ceph-deploy install host218
ceph-deploy osd prepare host218:sdb:/dev/ssd
ceph-deploy osd activate host218:sdb1:/dev/ssd


216/217 添加mon

ceph-deploy mon add host216 
ceph-deploy mon add host217


查看mon状态

ceph quorum_status --format json-pretty