ubuntu ceph部署

ubuntu ceph部署

参考文档:http://docs.ceph.org.cn/start/

节点配置

1个mon节点,3个osd节点

安装前准备

安装ceph-deploy

注:需要在每个节点上执行这2步

  • 更新你的仓库,并安装 ceph-deploy

    sudo apt-get update && sudo apt-get install ceph-deploy

注: 此步如果出错,请手动安装需要的包例如此前已经安装过,没有卸载干净所以需要手动安装

sudo dpkg -i --force-overwrite /var/cache/apt/archives/ceph-deploy_2.0.1-0ubuntu1_all.deb

如果还是出错,则运行sudo apt-get install -f强制修复受损的包

安装NTP 服务

ntp服务用数据服务器时间同步,建议在所有的ceph节点安装ntp服务(特别是 Ceph Monitor 节点)以避免时钟飘逸故障

#安装ntp
sudo apt-get install ntp

#配置ntp
vi /etc/ntp.conf
#启动ntp服务

安装ceph

#添加待安装的host hostname到控制机/etc/hosts文件中
#将ceph版本号打进环境变量,确保安装指定版本的ceph
#初始化host,并在部署目录生成ceph.conf(初始化配置,携带有fsid),创建mon前必须要这一步
ssh {hostname} "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -"
ssh {hostname} "echo deb http://download.ceph.com/debian-15.2.13/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list"
ssh {hostname} "sudo apt-get update"
ceph-deploy install {hostname}

注:如果install错了版本,可以执行ceph-deploy uninstall {hostname}来卸载

报错1:

[ceph_deploy][ERROR ] RuntimeError: AttributeError: module 'platform' has no attribute 'linux_distribution'

原因:

python3.5 之后就废弃了linux_distribution函数,我们的机器默认是python3.8

解决:

修改 /usr/lib/python3/dist-packages/ceph_deploy/hosts/remotes.py 脚本,采用distro.linux_distribution 替换platform.linux_distribution

import distro as dist

dist.linux_distribution

报错2:

sudo apt-get install -f修复包时报错(依赖的包有问题)

dpkg: error processing archive /var/cache/apt/archives/ceph-base_15.2.13-1focal_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man8/ceph-deploy.8.gz', which is also in package ceph-deploy 2.0.1-0ubuntu1
Errors were encountered while processing:
 /var/cache/apt/archives/ceph-base_15.2.13-1focal_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决:

尝试修复对应包

sudo dpkg -i --force-overwrite {filename}

然后执行

sudo apt update && sudo apt upgrade

再重新ceph-deploy install {hostname}就ok了

初始化秘钥

#修改配置ceph.conf. 完成后再初始化好ceph-mon
#部署并启动mon,完成后部署目录会出现集群各节点密钥信息,同时mon节点的/etc/ceph/ceph.conf生成
ceph-deploy mon create-initial

会产生密钥,和在各个节点上部署好ceph-mon 和ceph-crash

拷贝配置文件到各个节点

#该步骤将部署目录的ceph.client.admin.keyring拷贝到远程node的/etc/ceph目录下
ceph-deploy admin  node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
#这样每个节点都可以使用ceph命令了
#查看状态
ceph health

状态warn 解决

cluster:
    id:     75e147c1-b2a4-4f54-8c11-0ee3ef9fc46e
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
#执行,禁用不安全模式!            
ceph config set mon auth_allow_insecure_global_id_reclaim false

添加OSD

#初始化SSD磁盘,先格式化磁盘
mkfs.xfs /dev/sdm1
wipefs -a /dev/sdm1 
#出生化HDD磁盘
mkfs.xfs /dev/sdb1
wipefs -a /dev/sdb1

#创建lv
pvcreate /dev/sdm1
#创建name=ceph-db-0的volume group,可通过vgdisplay查看
vgcreate ceph-db-0 /dev/sdm1
#创建一个64G的name=db-sdb的lv用来做bluestore osd的db文件,可通过lvdisplay查看
lvcreate -n db-sdb -L 64g ceph-db-0

#添加osd
ceph-deploy osd create node1 --data /dev/sdb1 --block-db ceph-db-0/db-sdb --bluestore
##bulustore 添加wal db,自动初始化hdd磁盘
ceph-deploy osd create node2 --data /dev/sde1 --block-db ceph-db-0/db-sde --block-wal ceph-db-0/wal-sde --bluestore

注:推荐上面的方式(即wal和db放在一起)

#采取同样的办法多添加几个OSD
#查看OSD状态
ceph osd tree

安装mgr

ceph-deploy mgr create node1 node2 node3

开启dashboard

#需要安装 ceph-mgr-dashboard, 需要在mgr的机器上都安装dashboard才行
apt install ceph-mgr-dashboard -y
#启动dashboard
ceph mgr module enable dashboard
#禁用SSL,如果不禁用得添加证书
ceph config set mgr mgr/dashboard/ssl false
#创建用户
echo "admin123" > passwd.txt
ceph dashboard ac-user-create admin administrator -i passwd.txt
#设置端口
ceph config set mgr mgr/dashboard/server_port 8080
#注意: 不要设置server_addr, 一旦设置了server_addr, 当mgr主切换的时候,mgr中的module中服务的IP不会自动更新
#查看服务
ceph mgr services
-----
{
    "dashboard": "http://ceph-node2:8080/"
}

安装rgw

#安装3台
ceph-deploy install --rgw ceph-node1 ceph-node2 ceph-node3
#安装rgw
ceph-deploy rgw create ceph-node1 ceph-node2 ceph-node3

#创建用户及配置dashboard
#创建用户,会返回用户配置信息 --system表示系统用户
radosgw-admin user create --uid=ceph_dashboard --display-name=ceph-dashboard  --system

#添加access_key 和 secret_key
vi ak
vi sk
#添加用户证
ceph dashboard set-rgw-api-access-key -i ak
ceph dashboard set-rgw-api-secret-key -i sk
ceph dashboard set-rgw-api-ssl-verify False
ceph dashboard set-rgw-api-scheme http
#完成之后在dashboard的ObjectGetway里就有配置了
#可以在dashboard上执行创建用户,bucket等操作

安装cephfs

#安装mds, 3个mds,1主2从
#此时可以修改ceph.conf 通过--overwrite-conf跟新配置
ceph-deploy --overwrite-conf mds create node1 node2 node3
#创建pool
ceph osd pool create cephfs_data 2056
ceph osd pool create cephfs_metadata 64
#创建fs,每个集群只能创建一个fs?
ceph fs new cephfs cephfs_metadata cephfs_data

#客户端需要安装ceph-fuse 和ceph-comm
相关推荐
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
188_djh12 小时前
# 如何查看 Ubuntu 版本?
linux·ubuntu·lsb_release·/etc/issue·/proc/version·uname -r·查看ubuntu版本
Chervin12 小时前
Windows,虚拟机Ubuntu和开发板三者之间的NFS服务器搭建
linux·单片机·ubuntu·arm
ac.char12 小时前
在 Ubuntu 上安装 Redis 并为其设置登录密码
linux·redis·ubuntu
有梦想的咕噜14 小时前
在 Ubuntu 上安装 `.deb` 软件包有几种方法
linux·运维·ubuntu
zjj58714 小时前
tartanvo ubuntu 20.04部署
linux·运维·ubuntu
NightReader17 小时前
Ubuntu 22.04使用nitrogen设置双屏显示
linux·运维·ubuntu
XZHOUMIN21 小时前
网易博客旧文-----SVN客户端在UBUNTU上的安装
linux·ubuntu·svn
OceanBase数据库官方博客1 天前
如何在 Ubuntu 上 部署 OceanBase
ubuntu·oceanbase·分布式数据库·安装部署
minos.cpp1 天前
ubuntu 22.04 镜像源更换
linux·运维·ubuntu