環境說明:
ip | 服務 | 主機名 | 備注 |
172.20.101.5 | ceph、ceph-deploy\mon | admin-node | mon節點 集群節點 |
172.20.101.13 | ceph | ceph1 | osd |
172.20.101.15 | ceph | ceph2 | osd |
環境准備:
1關閉selinux和iptables
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0
2設置時間同步
yum -y install ntp systemctl enable ntpd systemctl start ntpd ntpdate -u cn.pool.ntp.org hwclock --systohc timedatectl set-timezone Asia/Shanghai
3修改主機名和host
hostnamectl set-hostname admin-node hostnamectl set-hostname ceph1 hostnamectl set-hostname ceph2
vim /etc/hosts 172.20.101.5 admin-node 172.20.101.13 ceph1 172.20.101.15 ceph2
4設置yum源(已安裝可忽略)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
ceph yum源
cat > /etc/yum.repos.d/ceph.repo <<EOF [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck=0 [ceph-noarch] name=cephnoarch baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ gpgcheck=0 EOF yum clean all && yum makecache #緩存yum源
5.配置master節點免密鑰登陸節點
yum install openssh-server -y #安裝ssh服務器 ssh-keygen ssh-copy-id root@admin-node ssh-copy-id root@ceph1 ssh-copy-id root@ceph2
ceph安裝
Ps:如果在某些地方卡住,想從頭再來,可以用命令清楚配置
Ceph-deploy purgedata [ceph-node] [ceph-node] Ceph-deploy forgetkeys 也可以把安裝包去掉 Ceph-deploy purge [ceph-node] [ceph-node] 用作k8s 需要安裝ceph-common
yum -y install ceph-deploy #集群節點和mon節點安裝
創建集群目錄:
mkdir /etc/ceph && cd /etc/ceph ceph-deploy new admin-node
#創建mon節點(有多個在后面增加,但需要安裝ceph-deploy包,如:ceph-deploy new admin-node ceph1 ceph2)
ceph-deploy install admin-node ceph01 ceph02 --repo-url=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/
#安裝ceph服務,並指定阿里源,如果yum安裝ceph則不需要操作
此時會生成ceph配置文件
vim ceph.conf [global] fsid = fb58eb0d-ccfe-43ff-a24a-a46b418ebd4c mon_initial_members = admin-node mon_host = 172.20.101.5 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx osd pool default size = 2 #設置默認副本數為2 默認為3 rbd_default_features = 1 #永久改變默認值 osd journal size = 2000 #日志大小設置 public network = 10.0.0.0/16 #如果有多個網卡則需進行網絡配置 #如果是ext4的文件格式需要執行下面兩個配置 (df -T -h|grep -v var查看格式) osd max object name len = 256 osd max object namespace len = 64
集群節點初始化mon節點和密鑰信息
ceph-deploy mon create-initial
創建osd節點對應用於存儲的磁盤及掛載目錄(osd節點操作)
mkdir -p /ceph && chown -R ceph.ceph /ceph/ fdisk /dev/sdb #對新建磁盤進行分區
依次輸入n -> p -> 1 -> enter -> enter -> wq
fdisk -l #查看分區的磁盤 mkfs.xfs /dev/sdb1 #格式化分區 mkdir /ceph #創建掛載目錄
vim /etc/fstab /dev/sdb1 /ceph xfs defaults 0 0
mount -a #掛載 df -h #查看創建情況 chown -R ceph.ceph /ceph/ #設置屬主和屬組
在集群節點操作:
ceph-deploy osd prepare admin-node:/ceph ceph1:/ceph ceph2:/ceph #准備創建osd ceph-deploy osd activate admin-node:/ceph ceph1:/ceph ceph2:/ceph #激活osd ceph-deploy admin admin-node ceph01 ceph02 #admin密鑰拷貝到管理節點和ceph節點,之后ceph命令就無需指定monitor地址和ceph.client.admin.keyring chmod +r /etc/ceph/ceph.client.admin.keyring #設置權限 ceph-deploy mon create admin-node #創建mon節點,多個需要安裝ceph-deploy ceph health #查看集群健康狀況 ceph -s #查看集群狀況 Ceph df #查看集群磁盤 Ceph osd tree #查看歐舒丹的節點狀態 Ceph-deploy osd list admin-node ceph1 ceph2 #查看osd狀態和數據存放位置 Ceph quorum_status --format json-pretty #查看集群mon選舉狀態
添加osd
在新加節點上掛載目錄/ceph,並創建磁盤分區格式化掛載
ceph-deploy osd prepare node3:/ceph #准備創建新家的osd ceph-deploy osd activate node3:/ceph #激活osd ceph -w # 一旦你新加了 OSD , Ceph 集群就開始重均衡,把歸置組遷移到新 OSD ,此命令查看遷移過程
添加元數據服務器
使用cephfs必須要一個元數據服務器
ceph-deploy mds create admin-node #創建元數據服務器
添加rgw
要使用ceph對象網關組件,必須部署rgw
ceph-deploy rgw create admin-node RGW 例程默認會監聽 7480 端口,可以更改該節點 ceph.conf 內與 RGW 相關的配置 vim ceph.conf [client] rgw frontends = civetweb port=80 #修改端口
添加monitor
ceph-deploy mon add ceph1 ceph2
ceph quorum_status --format json-pretty #新增 Monitor 后,Ceph 會自動開始同步並形成法定人數,此命令查看法定人數狀態
配置塊設置:
lsb_release -a uname -r #使用4.1.4 或者之后的,否則可能有問題,低於則升級內核 升級步驟: export Kernel_Version=4.18.9-1 wget http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml{,-devel}-${Kernel_Version}.el7.elrepo.x86_64.rpm yum localinstall -y kernel-ml* grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg #修改啟動順序,使升級內核為默認啟動內核 grubby --default-kernel #查看是否升級成功 reboot
管理節點通過ceph-deploy安裝ceph-client
ceph-deploy install ceph3 #節點安裝ceph ceph-deploy admin ceph3 #拷貝ceph配置文件和密鑰信息 chmod +r /etc/ceph/ceph.client.admin.keyring #設置可操作的權限
配置:
rbd create foo --size 4096 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] #如果沒加入admin配置拷貝步驟需要加入-m 和-k選項 指定monitor ip和密鑰文件
如:rbd create rbd/test1 --size 1G --image-format 2 --image-feature layering # 在rbd pool下創建名為test1,大小為1G 鏡像格式為2 feature 為layering 的鏡像 rbd map rbd/test1 #將 images 映射為塊設備 ,或輸出一個/dev/rbd/rbd/test
然后格式化 ,操作同上門集群配置
mkfs.ext4 -m0 /dev/rbd/rbd/test1 #此命令耗時較長 然后在節點掛載 mkdir /ceph mount /dev/rbd/rbd/test1 /ceph
配置cephfs文件系統
一、啟用cephfs
Ceph文件系統至少需要兩個RADOS池,一個用於數據,一個用於元數據
啟用mds服務
# ceph-deploy mds create node01
創建數據pool
ceph osd pool create cephfs_data 128
創建Metadata池
ceph osd pool create cephfs_metadata 128
啟用pool
ceph fs new cephfs cephfs_metadata cephfs_data
查看cephfs
ceph fs ls
**二、掛載cephfs **
掛載cephfs有兩種方式,kernel driver和fuse
1、kernel driver掛載
關閉認證情況下
sudo mkdir /mnt/wyl sudo mount -t ceph 192.168.0.1:6789:/ /mnt/wyl
設置開機自動掛載/etc/fstab
172.16.70.77:6789:/ /mnt/ceph ceph noatime,_netdev 0 2
啟用認證
# cat ceph.client.admin.keyring [client.admin] key = AQBSdU5bT27AKxAAvKoWQdGpSuNRCHjC4B8DVA== # mount -t ceph 172.16.70.77:6789:/ /wyl -o name=admin,secret=AQBSdU5bT27AKxAAvKoWQdGpSuNRCHjC4B8DVA==
設置開機自動掛載/etc/fstab
172.16.70.77:6789:/ /mnt/ceph ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev 0 2
注意:檢查是否啟用cephx認證方法,如果值為none為禁用,cephx為啟用
[root@node1 ceph]# cat /etc/ceph/ceph.conf | grep auth | grep required auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx
2、fuse掛載
安裝掛載工具
# yum -y install ceph-fuse ceph
將存儲節點的admin秘鑰拷貝到本地 # ssh root@node1 "ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key root@node1’s password: 賦予權限 # chmod 600 admin.key
執行掛載
參考官網
http://docs.ceph.org.cn/cephfs/fuse/ sudo mkdir /home/usernname/cephfs sudo ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs # mount -t ceph node1:6789:/ /mnt -o name=admin,secretfile=admin.key # df -hT 設置開機自動掛載/etc/fstab id=admin,conf=/etc/ceph/ceph.conf /mnt fuse.ceph defaults 0 0 mds可以同時啟用多個節點,不同的client掛載不同mds存儲節點,不同client可以同時寫數據,數據是共享的
3、windows掛載:
https://github.com/ksingh7/ceph-cookbook/tree/master/ceph-dokan
————————————————