环境初始化
- 准备3台虚拟机,并对每一台虚拟机添加一个新硬盘(如果已添加则无需重复添加),虚拟机需要在关闭情况下才可进行设置。
然后一直下一步,在选择磁盘空间时可以根据自身条件进行调节。
配置hosts
#打开hosts文件
vim /etc/hosts
#将ip信息写入文件
192.168.187.130 deploy
192.168.187.129 node1
192.168.187.128 node2
同步时间(所有节点)
yum install -y chrony #在操作节点编辑 /etc/chrony.conf vim /etc/chrony.conf #解开注释,可以修改为自己的网段 allow 192.168.0.0/16 #在其他节点编辑 /etc/chrony.conf vim /etc/chrony.conf #注释掉所有server 服务器信息,并添加,ip为操作节点ip server 192.168.187.132 iburst
同步时间
# 所有节点安装chrony yum install -y chrony # # 在时间服务节点编辑 /etc/chrony.conf vim /etc/chrony.conf #解开注释,可以修改为自己的网段 allow 192.168.0.0/16 # # 在时间客户节点编辑 /etc/chrony.conf vim /etc/chrony.conf #注释掉所有server 服务器信息,并添加,ip为操作节点ip server 192.168.187.130 iburst
关闭防火墙(所有节点)
systemctl stop firewalld systemctl disable firewalld
安装yum源epel,并添加对应配置(所有节点) ```shell
为避免安装不成功,可以先尝试卸载后在安装。
yum remove -y epel-release yum install -y epel-release
/etc/yum.repos.d/ceph.repo 在该文件中添加配置
[Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch enabled=1 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch enabled=1 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source] name=Ceph source packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS enabled=0 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc
如果163的源有问题可以切换到别的源,该源为清华的源
```shell
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1
阿里云源
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
安装yum源cetnos,并清除缓存(所有节点)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all
配置deploy节点免密登录其余所有节点(deploy节点操作)
#生成密钥,执行命令后按三下Enter ssh-keygen -t rsa #发送公钥给其余节点,此处是需要输入其余节点密码的 ssh-copy-id deploy ssh-copy-id node1 ssh-copy-id node2 #进行免密验证 ssh node1 exit
对每个节点设置对应的hostname,然后reboot重启
hostnamectl set-hostname 节点名
安装ceph包
- 安装ceph-deploy,ceph-deploy是ceph的安装程序(deploy节点操作)
yum -y install ceph-deploy
#这个时候查看ceph-deploy的版本信息是会报错的,我们需要在安装一个东西
yum install python-setuptools -y
#安装完成后就可以查看ceph-deploy版本信息
ceph-deploy --version
安装deltarpm(所有节点)
yum install -y deltarpm
安装ceph(deploy节点)
ceph-deploy install --release=luminous deploy node1 node2
安装完成后可以在任意节点执行ceph -v 查看ceph版本信息部署ceph集群(该操作都在deploy执行)
在集群的安装过程中,会产生一些文件,我们需要创建一个文件夹,在该文件夹下执行
mkdir ceph-deploy cd ceph-deploy
容错,如果在安装过程中出现错误,则需要重新开始
ceph-deploy purge deploy node1 node2 ceph-deploy purgedata deploy node1 node2 ceph-deploy forgetkeys rm ceph.*
以node1为initial monitor创建集群作为监控节点,在完成后会生成3个文件
ceph-deploy new node1
部署initial monitor,这时候mon就在node1节点运行起来了
ceph-deploy mon create node1 # 这个时候ceph就在node1上运行起来了(在node1节点查看) ps -ef | grep ceph
创建ceph keyring,这样所有节点的key和权限就存在于集群中了
ceph-deploy gatherkeys node1
分发keyring,把ceph.client.admin.keyring和ceph.conf放到每个server的/etc/ceph/
ceph-deploy admin deploy node1 node2
创建mgr,需要为每一个mon创建mgr,从ceph12开始才有。完成后通过ceph -s可以查看services下的mgr出现node1
ceph-deploy mgr create node1
创建osd,在使用磁盘前需要先把磁盘清空,所有一环境初始化时添加了一个磁盘进来
#通过命令查看节点磁盘情况 fdisk -l #决定你需要格式化的磁盘,视自己设备情况而定 ceph-deploy disk zap deploy /dev/sdb #创建osd ceph-deploy osd create node1 --data /dev/sdb ceph-deploy osd create node2 --data /dev/sdb ceph-deploy osd create deploy --data /dev/sdb #这里由于集群有限,故使用deploy节点也作为osd
查看集群状况,可以看到services中osd也出现数据,并且data中有数据使用情况。
- 添加mon和mgr,添加mon和mgr之前,需要在ceph.conf中添加public network配置,在将修改推送到各个节点。
```shell
vim /root/ceph-deploy/ceph.conf
在ceph.conf中添加public network
public network = 192.168.187.0/24推送到各节点
ceph-deploy —overwrite-conf config push node1 node2 deploy
最后进行mon添加和mgr添加
ceph-deploy mon add node2 ceph-deploy mgr create node2
23. 创建mds,为了支持cephfs,在node2节点上创建mds
```shell
#创建mds
ceph-deploy mds create node1
#创建成功后可以在node1节点上查看mds进程
ps -ef | grep ceph-mds
#这个时候ceph -s 在services下是看不到mds的,需要创建ceph filesystem的时候才可以看到。
增加rgw,需要占用7480端口。
#增加rgw
ceph-deploy rgw create node2 deploy
#进程查看
ps -ef | grep ceph
#http查看
curl deploy:7480
增加cephfs
ceph filesystem需要mds(我们之前已经部署mds),并且有两种挂载方式ceph fuse和ceph kernel driver
创建所需的pool(在任意一个集群节点上都可以)
ceph osd pool create cephfs_data 80 ceph osd pool create cephfs_metadata 40
创建filesystem
ceph fs new mycephfs cephfs_metadata cephfs_data #这时候就可以查看mds了 ceph -s
通过ceph push进行挂载(理论上我们需要在ceph集群之外的设备上进行挂载,实力有限我们挂载在node1上,在node1上安装ceph-fuse,如果是在ceph集群外也只需要安装这一个包)
yum install -y ceph-fuse.x86_64
然后创建一个挂载点就可以挂载了,ceph-fuse挂载使用的是admin的权限,所以,通过-k选项传入admin的key。-m后的节点为任一mon节点。 ```shell mkdir /mnt/cephfs
ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m node2:6789 /mnt/cephfs
- 如果后面修改了时间同步,需要在所有节点重启 ceph,命令为` $systemctl restart ceph.target`
- 开启dashboard(可视化界面)
```shell
ceph mgr module enable dashboard
#一下命令会输出一个ip地址,该地址为dashboard地址
ceph mgr services