1.安装准备
确保集群服务器关闭防护墙,时间同步,admin节点能免密钥访问其他所有节点
vim /etc/hosts 192.168.3.18 k8s-node1 192.168.3.19 k8s-node2 192.168.3.21 k8s-node3 pip uninstall urllib3 yum install python-urllib3.noarch 0:1.10.2-5.el7 wget https://download.ceph.com/rpm-kraken/el7/noarch/ceph-deploy-1.5.38-0.noarch.rpm yum install ceph-deploy-1.5.38-0.noarch.rpm安装ceph-deploy
yum install ceph-deploy -y
2.部署仓库
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-luminous/el7 export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc所有节点上新增仓库文件
vim /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch enabled=1 gpgcheck=1 priority=1 type=rpm-md gpgkey=http://mirrors.163.com/ceph/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch enabled=1 gpgcheck=1 priority=1 type=rpm-md gpgkey=http://mirrors.163.com/ceph/keys/release.asc [ceph-source] name=Ceph source packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS enabled=0 gpgcheck=1 type=rpm-md gpgkey=http://mirrors.163.com/ceph/keys/release.asc priority=1 yum clean all && yum makecache
3.部署
主节点上创建目录mkdir /ceph && chmod 777 /ceph cd /ceph ceph-deploy new k8s-node1 k8s-node2 k8s-node3 ceph-deploy install --release luminous k8s-node1 k8s-node2 k8s-node3新增主网卡网段
vim ceph.conf public network = 192.168.3.0/24#如果部署完后要同步所有配置
#ceph-deploy --overwrite-conf config push k8s-node2 k8s-node3初始化mon
ceph-deploy mon create-initial ls *keyring
4.创建OSD用目录
分别在所有节点上创建添加OSD用的目录mkdir -pv /ceph/osd1 && chmod 777 /ceph/osd1 mkdir -pv /ceph/osd2 && chmod 777 /ceph/osd2 mkdir -pv /ceph/osd3 && chmod 777 /ceph/osd3
5.增加osd(在主节点上执行)
准备osdceph-deploy osd prepare k8s-node1:/ceph/osd1 k8s-node2:/ceph/osd2 k8s-node3:/ceph/osd3激活osd
ceph-deploy osd activate k8s-node1:/ceph/osd1 k8s-node2:/ceph/osd2 k8s-node3:/ceph/osd3
6.同步密钥
ceph-deploy把配置文件和admin秘钥拷贝到其他节点ceph-deploy admin k8s-node1 k8s-node2 k8s-node3所有节点上执行
chmod +r /etc/ceph/ceph.client.admin.keyring
7.检查集群
ceph health ceph -s
8.部署UI
ceph-deploy mgr create k8s-node1 ceph mgr module enable dashboard ceph config-key put mgr/dashboard/server_addr 192.168.3.18 ceph config-key put mgr/dashboard/server_port 7000访问http://192.168.3.18:7000/
9.关键字说明
PG是指定存储池存储对象的目录有多少个,PGP是存储池PG的OSD分布组合个数 PG的增加会引起PG内的数据进行分裂,分裂到相同的OSD上新生成的PG当中 PGP的增加会引起部分PG的分布进行变化,但是不会引起PG内对象的变动 Monitor一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。 OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。 MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。 Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。 PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。 RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。 Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。 CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。 RBD全称RADOS block device,是Ceph对外提供的块设备服务。 RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。 CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。10.创建修改pool
查看poolceph osd pool ls
创建pool
通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
若少于5个OSD, 设置pg_num为128
5~10个OSD,设置pg_num为512
10~50个OSD,设置pg_num为4096
超过50个OSD,可以参考pgcalc计算
我这里osd只有3个,所以pg设置为128
ceph osd pool create test 128设置允许最大object数量为100:
ceph osd pool set-quota test max_objects 100设置允许容量限制为10GB:
ceph osd pool set-quota test max_bytes $((10 * 1024 * 1024 * 1024))取消配额限制只需要把对应值设为0即可。 重命名pool
ceph osd pool rename test test-new删除pool 删除一个pool会同时清空pool的所有数据,因此非常危险。(和rm -rf /类似)。因此删除pool时ceph要 求必须输入两次pool名称,同时加上--yes-i-really-really-mean-it选项。
ceph osd pool delete test test --yes-i-really-really-mean-it
11.创建RBD
创建RBD(这里我没执行,我直接在kubenetes上创建的RBD)rbd create rbd_test --size 1024 --pool testrbd_test代表所创建rbd块设备的名字 --size后接rbd块设备的大小,单位MB --pool后接该rbd块设备所在存储池名称 创建完之后需要对pool进行标记否则会报HEALTH_WARN application not enabled on 1 pool(s)
ceph osd pool application enable rbd_test rbd查看创建的rbd
rbd ls -p rbd_test
12.挂载ceph
ceph-deploy mds create k8s-node1 ceph osd pool create test_data 128 ceph osd pool create test_metadata 110 ceph fs new testfs test_metadata test_data yum -y install ceph-fuse mkdir /mnt/fuse_cephfs/ ceph-fuse -m 192.168.3.18:6789 /mnt/fuse_cephfs/
评论区