单机部署Ceph

494 阅读1分钟

基础环境

CentOS 7.9

设置服务器信息

# 设置HOST
hostnamectl set-hostname ceph && bash
cat > /etc/hosts << EOF
192.168.6.95 ceph
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF
# 关闭SELINUX
setenforce 0;sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config;

echo "ulimit -HSn 9999999" >> /etc/profile


ceph YUM 仓库

# 按照命令编辑 vi /etc/yum.repo.d/ceph.repo,写入如下内容:
[ceph]                                                                          
name=Ceph packages for $basearch                                                 baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el7/$basearch                enabled=1                                                                        gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

yum makecache
sudo yum install -y epel-release
sudo yum install -y lttng-ust

## 解决docker 依赖
sudo yum install -y container-selinux
sudo yum install -y fuse-overlayfs slirp4netns
sudo yum update -y

yum  install ceph-common radosgw

镜像拉取

  1. 国内快速拉镜像加速方式:dockerproxy.com

docker pull quay.dockerproxy.com/ceph/ceph:v15
docker tag quay.dockerproxy.com/ceph/ceph:v15 quay.io/ceph/ceph:v15

安装cephadm

wget https://raw.githubusercontent.com/ceph/ceph/octopus/src/cephadm/cephadm
chmod +x ./cephadm
\cp -r ./cephadm /usr/local/bin/

初始化ceph

cephadm bootstrap --mon-ip 192.168.6.95 --allow-overwrite

image.png

设置服务

前置要求

A storage device is considered available if all of the following conditions are met:

The device must have no partitions.

The device must not have any LVM state.

The device must not be mounted.

The device must not contain a file system.

The device must not contain a Ceph BlueStore OSD.

The device must be larger than 5 GB.

进入ceph终端

cephadm shell

自动添加OSD

# 查看设备是否可用
ceph orch device ls

ceph orch apply osd --all-available-devices
# 设置日志
ceph config set global log_to_file true
ceph config set global log_file /var/log/ceph/ceph.log

# 修改pg存储副本为1,防止集群状态WARN
 for i in `ceph osd pool ls`;do ceph osd pool set $i size 1 ;done

# 忽略警告 ,需要重启,systemctl restart ceph.target
   ceph config set global mon_warn_on_pool_no_redundancy false

# 设置默认osd pool 
ceph config set global osd_pool_default_size 1

开启RGW

# 检查RGW服务是否已经启动
ceph orch ps --daemon-type rgw

# 查看RGW服务有没有启动
ceph orch ls --service-type rgw

radosgw-admin realm create --rgw-realm=testenv --default

radosgw-admin zonegroup create --rgw-zonegroup=test --master --default

radosgw-admin zone create --rgw-zonegroup=test --rgw-zone=room1 --master --default

ceph orch apply rgw testenv test-1 --placement="*"

radosgw-admin user create --uid=dashboard --display-name=dashboard --system

# 设置dashboard 访问key和secret
ceph dashboard set-rgw-api-access-key -i access-key

ceph dashboard set-rgw-api-secret-key -i secret-key


卸载ceph

# fsid 是必须参数

cephadm rm-cluster --fsid d71b7880-0dbb-11ef-92c3-525400c71988 --force


# 恢复硬盘为块设备
ceph-volume lvm zap /dev/sdb --destroy
ceph-volume lvm zap /dev/sdc --destroy
ceph-volume lvm zap /dev/sdd --destroy
ceph-volume lvm zap /dev/sde --destroy

wipefs -a /dev/sdb
wipefs -a /dev/sdc
wipefs -a /dev/sdd
wipefs -a /dev/sde