ceph搭建ubuntu20.04案例

三台机器

准备工作

安装依赖

sudo apt-get install openssh-server
sudo apt install vim 
apt install net-tools

设置root密码

##  设置root密码 所有操作在root下进行
sudo passwd root
su
passwd root 
vim /etc/ssh/sshd_config PermitRootLogin yes 设置为yes 
sudo systemctl restart sshd

修改静态IP

假如会自动缩进
在/etc/vim中,修改vimrc,添加 set pastetoggle=<F9> 在黏贴代码之前,进入insert模式,按F9,就可以关闭自动缩进。



cd /etc/netplan/
vim 01-network-manager-all.yaml
# 设置内容
network:
    ethernets:
        ens33:
            dhcp4: no
            addresses: [192.168.1.115/24]
            optional: true
            gateway4: 192.168.1.1
            nameservers:
                addresses: [223.5.5.5,223.6.6.6]
    version: 2



sudo netplan apply
重启生效  否则IP会一直跳    可在修改完host再重启

修改主机名

分别去不同的机器设置
机器一
sudo hostnamectl set-hostname ceph_node1
机器二
sudo hostnamectl set-hostname ceph_node2
机器三
sudo hostnamectl set-hostname ceph_node3
需要重启 可以修改完host再重启

修改host

所有机器都要操作
vim /etc/hosts 
	192.168.1.11 ceph_node1
	192.168.1.12 ceph_node2
	192.168.1.13 ceph_node3
	需要重启

关闭防火墙 SELinux [ubuntu貌似默认关闭 可不管]

更新源 【貌似没更新也完成了 三台机器要保持源一致】

备份源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
# 阿里源【但是貌似安装ceph失败】 
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
###########################ceph 官方源  貌似只写下面的即可【不同版本源不同】
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

更新完源  更新软件列表
sudo apt update  
其他版本源查询
https://mirrors.ustc.edu.cn/repogen/

同步时间【暂时没是时间服务器】

三台服务器都需要做
设置时区为上海
	ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
	bash -c "echo 'Asia/Shanghai' > /etc/timezone"
安装ntpdate
	apt-get install -y ntpdate
同步阿里云
	ntpdate ntp1.aliyun.com

设置机器户型【不确定是否三台都做 目前只做监控机成功】

ssh-keygen  
###   两次回车 不需要设置密码
生成公钥 跟 私钥的 地址
#Your identification has been saved in /root/.ssh/id_rsa
#Your public key has been saved in /root/.ssh/id_rsa.pub
#传给别的机器 自己也要传一份
	ssh-copy-id -i /root/.ssh/id_rsa.pub ceph_node1
	ssh-copy-id -i /root/.ssh/id_rsa.pub ceph_node2
	ssh-copy-id -i /root/.ssh/id_rsa.pub ceph_node3
传输完毕以后进行校验
    ssh ceph_node2
	ssh ceph_node2

截止目前准备工作全部完成

监控机操作部分

安装软件

三台都需要安装
以下2步  不确实是都是为必须 
		Ceph 通过radosgw提供RESTFul HTTP API接口支持对象存储能力,radosgw本质上是一个客户端程序,提供FastCGI 服务
		apt-get install -y radosgw --allow-unauthenticated
		配置apt允许以 HTTPS方式拉取镜像安装
		apt-get install -y apt-transport-https --allow-unauthenticated
安装ceph相关包
	apt-get install -y ceph ceph-osd ceph-mds ceph-mon radosgw  

安装 ceph-deploy 【只要主节点操作】

目前方法一  方法二都有执行 不确定哪个生效  可用方法一 试试 不行再说
方法一:
	yum -y install ceph-deploy
方法二:
	apt-get install python3 python3-pip -y
	mkdir /home/cephadmin
	cd  /home/cephadmin
	git clone https://github.com/ceph/ceph-deploy.git
	cd ceph-deploy
	pip3 install setuptools
	python3 setup.py install

创建配置文件

cd /opt
mkdir -p cephinstall
cd cephinstall

vim /etc/profile
export MDS="ceph_node1"
export MON= "ceph_node1 ceph_node2 ceph_node3"
export OSDS="ceph_node1 ceph_node2 ceph_node3"
export INST="$OSDS $MON"
source /etc/profile

ceph-deploy new $MON
方法二 
执行之后,它会在当前目录生成文件ceph.conf
默认配置文件为

命令行输入
echo "osd pool default size = 2
osd max object name len = 256
osd max object namespace len = 64
mon_pg_warn_max_per_osd = 2000
mon clock drift allowed = 30
mon clock drift warn backoff = 30
rbd cache writethrough until flush = false" >> ceph.conf

截止到此 软件环境部署完成

ceph_node1 :
apt install ceph-deploy
ceph-deploy new ceph_node1 ceph_node2 ceph_node3

ceph_node1 ceph_node2 ceph_node3 :
apt install ceph

ceph-deploy mon create-initial ####生成 mon 角色
ceph-deploy admin ceph_node1 ceph_node2 ceph_node3

开始配置

cd  /opt/cephinstall 
# 创建一个新的 ceph-deploy
ceph-deploy new ceph_node1 ceph_node2 ceph_node3
# 推送配置文件
ceph-deploy --overwrite-conf config push ceph_node1 
ceph-deploy --overwrite-conf config push ceph_node2 
ceph-deploy --overwrite-conf config push ceph_node3
 #生成 mon 角色
ceph-deploy mon create-initial 
# 安装 这个是否需要??
apt install ceph-radosgw
# 设置 ceph_node1 为rgw
ceph-deploy rgw create ceph_node1  
# 设置ceph_node1 、ceph_node2 、ceph_node3 为 mds  
ceph-deploy mds create ceph_node1 ceph_node2 ceph_node3

初始化osd 就是自己挂载的东西

ceph-deploy osd create --data /dev/sdc ceph_node1 
ceph-deploy osd create --data /dev/sdd ceph_node1 
ceph-deploy osd create --data /dev/sdb ceph_node2 
ceph-deploy osd create --data /dev/sdc ceph_node2 
ceph-deploy osd create --data /dev/sdd ceph_node2
ceph-deploy osd create --data /dev/sdb ceph_node3
ceph-deploy osd create --data /dev/sdc ceph_node3
ceph-deploy osd create --data /dev/sdd ceph_node3

检查状态

root@jqb-node128:/opt/cephinstall# ceph -s
  cluster:
    id:     8dc355f1-b84b-408a-bd95-cd64c2279e15
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
            no active mgr
 
  services:
    mon: 3 daemons, quorum jqb-node128,jqb-node129,jqb-node131 (age 85m)
    mgr: no daemons active
    osd: 9 osds: 9 up (since 65m), 9 in (since 65m)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

此事状态 显示 确实 mgr
什么是mgr??
搭建mgr  【 感觉好像 只要ceph_node1  即可 】
	ceph-deploy mgr create ceph_node1 ceph_node2 ceph_node3
#########################再次检测
root@jqb-node128:/opt/cephinstall# ceph -s
  cluster:
    id:     8dc355f1-b84b-408a-bd95-cd64c2279e15
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum jqb-node128,jqb-node129,jqb-node131 (age 105m)
    mgr: jqb-node128(active, since 4s)
    osd: 9 osds: 9 up (since 85m), 9 in (since 85m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   9.1 GiB used, 171 GiB / 180 GiB avail
    pgs:     100.000% pgs unknown
             1 unknown

部署完成

开始使用

创建pool池

开始使用

启用mds服务
ceph-deploy mds create jqb-node128
创建数据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
sudo mount -t ceph 192.168.1.11:6789:/ /mnt/wyl  -o name=admin,secret=AQBZsgdhaqRkChAAzy/uWbbiN1J62Vm8VyCaOw==

下面的废弃!!!

mypool1 设置poll的名称
100为 pg数量   100可选
 【但是上诉没有 创建 自动创建了一个1】
# ceph osd pool create mypool1 100  

查看池

ceph osd pool ls detail
ceph osd pool ls 

查看副本数

ceph osd pool get device_health_metrics size
ceph osd pool get device_health_metrics pg_num
ceph osd pool set device_health_metrics pg_num 64  
	设置数量  减少的时候 要慢慢减少  一般设置2的N次方

设置池类型

设置 device_health_metrics 为 rgw   一个池子只能设置一个类型
ceph osd pool application enable device_health_metrics rgw

挂载一个新池

创建一个新的池子
ceph osd pool create mypool3
格式化池子
ceph osd pool application enable mypool3 rbd
分配池子大小
rbd create mypool3/disk1 --size 1G
创建连接 map出一个设备来
rbd map mypool3/disk1  【但是可能出错  但是自己做没报错 出错以后按着流程重新做一次  然后重新创建一下】
格式化  挂载 即可使用

版权声明:本文为qq_34865347原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。