所有的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
环境准备:
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守护程序