[ceph] ceph集群安装记录
文章目录
ceph集群安装记录
一、准备工作
1.参考文档
- ceph官方文档:https://docs.ceph.com/en/latest/install/
- ceph中文文档:http://docs.ceph.org.cn/start/
- ceph看云:https://www.kancloud.cn/willseecloud/ceph/1788233
2.配置说明
- 主机:3台主机node1~ node3,node1为管理节点
操作系统 | 内核版本 | 主机名 | 网段IP | 磁盘 | 服务 |
---|---|---|---|---|---|
centos 7.9 | 3.10.0 | node1 | 10.0.8.116 | 系统盘: sda;osd盘: sdb | mon1,osd0,rgw1,mds1,mgr1,dashboard,smb-server |
centos 7.9 | 3.10.0 | node2 | 10.0.8.159 | 系统盘: sda;osd盘: sdb | mon2,osd1,rgw2 |
centos 7.9 | 3.10.0 | node3 | 10.0.8.122 | 系统盘: sda;osd盘: sdb | mon3,osd2,rgw3,fs-client,block-client |
windows10 | - | - | 10.0.6.229 | - | smb-client(fs-client) |
- 操作系统版本:centos 7.9 内核版本:3.10.0
- ceph版本:Nautilus 14.2.22
- 服务IP及端口
服务 | 访问IP | 端口 |
---|---|---|
对象存储 | 10.0.8.116 | 7480 |
文件系统 | 10.0.8.116 | 6789 |
块存储 | 10.0.8.116 | 3260 |
仪表盘 | 10.0.8.116 | 8443 |
3.服务器配置
- 安装操作系统,设置网络
|
|
- 设置主机名,配置hosts支持主机名互访
|
|
- 关闭firewalle,iptables和selinux
|
|
- 时钟同步(https://www.cnblogs.com/quchunhui/p/7658853.html)
|
|
- 设置所有ceph节点为无需密码ssh互访(不要用 sudo 或 root 用户)
|
|
- requiretty检查(ceph-deploy 命令时可能会报错)
|
|
- 优先级/首选项
|
|
- 必要软件安装
|
|
4.部署工具(cpeh-deploy)安装
- yum源配置
|
|
- yum安装cpeh-deploy
|
|
二、常用命令
1.安装命令
- 清除命令
|
|
2.集群命令
- 查看集群状态
|
|
- 常用命令
|
|
- 对象存储操作
|
|
- 下发配置、分发配置至各个节点
|
|
- 服务管理
|
|
三、部署集群环境
1.创建集群
- 创建集群目录
|
|
- 安装 Ceph
|
|
- 创建 monitor
|
|
- 修改ceph配置
|
|
- 配置初始 monitor(s)、并收集所有密钥
|
|
-
创建osd
- 创建osd(create 命令是依次执行 prepare 和 activate 命令的捷径)
1 2 3 4
#空间使用率达到 near full 比率后, OSD 失败可能导致集群空间占满 ceph-deploy osd create [--data DATA] [HOST] ceph-deploy osd create --data /dev/vdb node1 ceph-deploy osd create --data /dev/vdb node2
- 查看osd状态
1 2
[root@node1 /etc/ceph]# ceph osd tree [root@node1 /etc/ceph]# ceph osd stat
- 删除osd
1 2 3 4 5
#踢出集群 ceph osd out {osd-num} #停止osd sudo /etc/init.d/ceph stop osd.{osd-num} #删除osd
-
用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点
1 2 3 4
ceph-deploy admin {admin-node} {ceph-node} ceph-deploy admin node1 node2 node3 sudo chmod +r /etc/ceph/ceph.client.admin.keyring
2.扩容
- 新增osd到集群
|
|
- 添加mds到集群
|
|
- 新增mon到集群
|
|
- 创建mgr服务
|
|
- 添加 RGW 例程
|
|
3.创建文件系统
- 创建pool
|
|
- 创建文件系统
|
|
- 把 Ceph FS 挂载为内核驱动(node3操作)
|
|
- 把 Ceph FS 挂载为用户空间文件系统( FUSE )(node3操作)
|
|
-
Cephfs+Samba构建基于Ceph的文件共享服务
- 安装Samba
1 2
#安装Samba包 yum -y install smaba samba-client samba-common
- 创建samba用户
1 2 3 4 5 6
groupadd samba useradd samba -d /home/samba -g samba -s /sbin/nologin touch /etc/samba/smbpasswd smbpasswd -a samba -c /etc/samba/smb.conf >samba //账号:samba 密码:samba
- 配置共享目录
1
mkdir -p /cephfs
- 配置ceph
1 2 3 4 5 6 7 8 9 10 11 12 13
cd /etc/ceph cp ceph.client.admin.keyring admin.secret vim admin.secret 【内容】 AQD7FbNhhDvhBBAAD1abMfsh8hXlPtqVqDQMKQ== #带认证信息挂在 sudo mount -t ceph 10.0.8.116:6789:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.secret #设置文件夹权限,非777客户端无法写入数据 chmod -R 777 /cephfs sudo chown -R nobody:nobody /smb
- 配置smb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
vim /etc/samba/smb.conf [global] workgroup = WORKGROUP netbios name = WINDOWS-6VQ5K0D server string = this is a test samba server log file = /var/log/samba/log.%m max log size = 500000 security = user passdb backend = tdbsam load printing = no [cephfs] comment = CephFs Home Directories path = /cephfs writable = yes browseable = yes guest ok = no [linuxfs] comment = Linux Home Directories path = / writable = yes browseable = yes guest ok = no #检查配置文件正确性 testparm
- 启动服务
1 2
sudo systemctl enable smb sudo systemctl start smb
- windows客户端挂载
1 2 3
#账号:samba 密码:samba \\10.0.8.116\ \\10.0.8.116\cephfs
4.对象存储
- 新建 CEPH 对象网关实例
|
|
-
访问:http://
:7480 -
配置 CEPH 对象网关
- s3风格接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#创建用户 radosgw-admin user create --uid="ceph-s3-user" --display-name="ceph s3 user demo" #获取到用户信息 "user": "ceph-s3-user", "access_key": "A3NNVXFRGGBNVWQU72SJ", "secret_key": "sbtEd2g1Q7FXN7GCf2N25CauxXTMDAzS37xOKfoG" #查看用户 radosgw-admin user list radosgw-admin user info --uid ceph-s3-user #命令行操作 yum install -y s3cmd //安装 s3cmd --configure //配置 vim /root/.s3cfg //signature_v2 = True//启用signature_v2 s3cmd ls //查看bucket s3cmd mb s3://my-new-bucket //创建bucket s3cmd ls s3://my-new-bucket //查看bucket中的文件 #软件操作(S3 Browser)
- swift风格接口
1 2 3 4
#创建swift用户 radosgw-admin subuser create --uid=ceph-s3-user --subuser=ceph-s3-user:swift --access=full #Create the secret key radosgw-admin key create --subuser=ceph-s3-user:swift --key-type=swift --gen-secret
-
新建用户和KEYRING
- 为每一个实例生成一个 Ceph 对象网关用户名和key. 举一个典型实例, 我们将使用 client.radosgw 后使用 gateway 作为用户名
1
sudo ceph auth get-or-create client.radosgw.gateway osd 'allow rwx' mon 'allow rwx' -o /etc/ceph/ceph.client.radosgw.keyring
- 分发生成的keyring到网关实例所在节点
1 2
sudo scp /etc/ceph/ceph.client.radosgw.keyring root@node2:/etc/ceph/ceph.client.radosgw.keyring sudo scp /etc/ceph/ceph.client.radosgw.keyring root@node3:/etc/ceph/ceph.client.radosgw.keyring
-
apache和网关配置
1 2 3 4 5 6 7 8 9 10 11 12
vim ceph.config 【内容】 [client.radosgw.gateway] host = node1 keyring = /etc/ceph/ceph.client.radosgw.keyring rgw socket path = "" log file = /var/log/radosgw/client.radosgw.gateway.log rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0 rgw print continue = false sudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway sudo chown apache:apache /var/run/ceph
5.块设备
- 创建pool及初始化pool(服务节点)
|
|
- 创建设备镜像并映射块设备(客户端操作)
|
|
- 扩容/缩容(客户端操作)
|
|
6.dashboard安装及配置
- 启用dashboard
|
|
四、常见问题及解决
1.osd故障
- 发现node3的服务osd为down状态
|
|
- mon is allowing insecure global_id reclaim
|
|
2.Error ERANGE: pg_num 128 size 3 would mean 1088 total pgs, which exceeds max 750 (mon_max_pg_per_osd 250 * num_in_osds 3)
|
|
文章作者 ZhangKQ
上次更新 2022-02-10