手动部署ceph集群

所有的ceph集群都需要至少一个monitor,以及至少与集群中存储的对象副本一样多的OSD

Unique Identifier:该fsid作为集群的唯一标识符

Cluster Name:集群的名称,默认集群名ceph

Monitor Name:集群中每一个monitor实例都有一个唯一的名称

Monitor Map:启动初始monitor需要生成monitor map.monitor映射需要fsid 集群名称,主机名

Monitor Keying:Monitors通过密钥相互通信,必须生成一个带有monitor密钥的keying

Administrator Keying:要使用cephCLI工具,必须有一个client.admin用户。因此,必须生成admin用户和keyring,并且还需要将client.admin用户添加到monitor keying

 

手动部署ceph集群

 

 环境准备:

1.Centos系统

2.配置静态ip,与外网可通信

vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes                      //启用
IPADDR=192.168.0.144
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

vi /etc/resolv.conf

nameserver 223.5.5.5

nameserver 223.6.6.6

3.配置主机名,hosts

4.关闭firewalld,selinux

************************************************** 

step1:安装系统所需依赖包

yum -y install lrzsz wget net-tools bash-completion vim

 

step2:安装ceph的软件源

cd /etc/yum.repos.d

mkdir ./bak

mv C* ./bak              //备份自带的repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo -O ./CentOS-Base.repo

wget http://mirrors.aliyun.com/repo/epel-7.repo -O /etc/yum.repos.d/epel.repo  或者 yum -y install epel-release

ceph.repo

[ceph]

name=Ceph packages for

baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=0

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=0

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=0

 

yum clean all

yum makecache

yum repolist

 

step3:配置时间服务器

服务端mon:

1.安装chrony软件包

2.vim /etc/chrony.conf

allow 192.168.0.0/24                //允许那个网段的ip访问ntp服务器

local stratum 10            //设置ntp服务器的层数

 

3.启动chronyd服务

systemctl start chronyd

timedatectl              //查看ntp的状态

timedatectl set-ntp yes               //开启ntp

 

客户端osd:

1.安装chrony软件包

2.vim /etc/chrony.conf

server ntp服务器的ip或域名 iburst 

3.测试

date -s "2015-12-12 12:12:12"

ntpdate ntp服务器的ip或域名

周期性计划任务:

crontab -e

* * * * * /usr/sbin/ntpdate ceph-mon 2>&1 /dev/null

systemctl restart crond

 

chronyc sources -v                    //查看时间同步源

 

step4:创建普通用户(不能使用ceph关键字),传递管理者的密钥(可选,如果需要普通用户安装,则创建,不需要,则使用root安装)

useradd  node -m

echo node|passwd --stdin node

vim /etc/sudoers

node  ALL=(ALL)  NOPASSWD:ALL          //授权普通用户

 

生成mon密钥: 

su - node

ssh-keygen---->回车                  ------>~/.ssh/id_rsa

传递mon公钥给osd节点:

ssh-copy-id  用户名@域名

 

ceph搭建:

step1:安装ceph依赖包

yum -y install snappy leveldb gdisk python-argparse gperftools-libs

step2:安装ceph(全部节点)

yum  -y install ceph

 

step3:初始化mon节点

在node1节点生成uuid,并在所有节点导入uuid环境变量

node1# uuidgen
7c49880a‐93ef‐4369‐80ec‐7be02aded372


node1# export cephuuid=7c49880a‐93ef‐4369‐80ec‐7be02aded372
node2# export cephuuid=7c49880a‐93ef‐4369‐80ec‐7be02aded372
node3# export cephuuid=7c49880a‐93ef‐4369‐80ec‐7be02aded372

 

step4:所有节点创建ceph配置文件

 

cat > /etc/ceph/ceph.conf <<EOF
[global]
fsid = 7c49880a‐93ef‐4369‐80ec‐7be02aded372
mon_initial_members = node1, node2, node3
mon_host = 192.168.0.137, 192.168.0.138, 192.168.0.139
public_network = 192.168.0.0/24
EOF

 

step5:配置密钥(node1)

为集群创建一个keyring,并生成一个monitor密钥。

 

#ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

生成administrator keyring,生成client.admin用户并将用户添加到keyring

#ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'

生成bootstrap-osd keyring,生成client.bootstrap-osd用户并将用户添加到keyring

#ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'

 

将生成的密钥添加到中ceph.mon.keyring

#ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

#ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring

将所有者更改为ceph.mon.keyring

#chown ceph.ceph /tmp/ceph.mon.keyring

使用主机名,主机IP地址和FSID生成monitor map。另存为/tmp/monmap

#monmaptool --create --add node1 192.168.0.137 --add node2 192.168.0.138 --add node3 192.168.0.139 --fsid $cephuid /tmp/monmap

 

复制monitor map到其他两个节点

 # scp /tmp/monmap root@node2:/tmp
 # scp /tmp/monmap root@node3:/tmp


复制ceph.client.admin.keyring到另外2个节点
# scp /etc/ceph/ceph.client.admin.keyring root@node2:/etc/ceph/
 # scp /etc/ceph/ceph.client.admin.keyring root@node3:/etc/ceph/


复制ceph.mon.keyring到另外2个节点
# scp /tmp/ceph.mon.keyring root@node2:/tmp/
# scp /tmp/ceph.mon.keyring root@node3:/tmp/

 #注意修改文件权限
[root@node2 ~]# chown ceph:ceph /tmp/ceph.mon.keyring
[root@node3 ~]# chown ceph:ceph /tmp/ceph.mon.keyring

 

step6:创建monitor数据目录

#node1

sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node1

#node2

sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node1

#node3

sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node1

 

step7:用monitor map和keyring填充monitor守护程序

 

上一篇:计算从1970年到当前时间所经历过的秒数


下一篇:洛谷 P1060开心的金明