基于Ubuntu22.04部署bcache模式ceph

作者:吴业亮
博客:wuyeliang.blog.csdn.net

将Bcache集成到Ceph OSD后端可以带来一些优点和潜在的缺点。以下是它们的一些方面:

优点:

  • 提高性能:BCache作为SSD缓存设备,可以提供更快的数据读取和写入速度。通过将热门数据缓存在SSD上,可以减少对慢速磁盘的访问,从而改善存储系统的整体性能。

  • 提高响应性:使用BCache作为缓存层可以显著减少IO延迟,因为SSD具有更快的随机访问时间,响应时间更短。

  • 灵活性:BCache可以根据应用程序的需求进行配置和调整。可以设置不同的缓存规则和策略,根据数据的访问模式来调整数据在SSD上的缓存策略,以最大程度地提高性能。

  • 成本效益:通过将较便宜的磁盘与SSD缓存结合,可以在提供高性能和低成本的存储方案之间取得平衡。

缺点:

  • 部署和管理复杂性:集成BCache到Ceph OSD后端需要额外的配置和管理。这可能增加了部署和管理方面的复杂性,并需要更多的知识和技能。

  • 可靠性考虑:BCache是一个缓存层,它依赖于底层磁盘来存储数据。尽管BCache有内建的数据保护措施,但缓存设备的故障或数据丢失仍然可能导致数据损坏或不一致。

  • 存储容量限制:由于SSD的成本较高,可能无法将所有数据都缓存在SSD上,因此需要权衡SSD缓存容量和数据存储容量之间的平衡。

重要提示:在集成BCache到Ceph OSD后端之前,请考虑系统的需求、可靠性要求、成本预算以及管理复杂性。在部署之前建议进行充分的测试和评估,以确保性能提升和可行性。此外,定期监控和维护BCache缓存设备的容量和性能是至关重要的,以确保系统的可靠性和一致性。

1、配置网络/etc/netplan/01-netcfg.yaml

network:
  ethernets:
    # interface name
    ens18:
      dhcp4: false
      # IP address/subnet mask
      addresses: [172.16.8.202/24]
      # default gateway
      # [metric] : set priority (specify it if multiple NICs are set)
      # lower value is higher priority
      routes:
        - to: default
          via: 172.16.8.1
          metric: 100
      nameservers:
        # name server to bind
        addresses: [8.8.8.8]
        # DNS search base
        #search: [srv.world,server.education]
      dhcp6: false
  version: 2

生效

# netplan apply

修改主机名

hostnamectl set-hostname node3

修改/etc/hosts

# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu
172.16.8.201 node1
172.16.8.202 node2
172.16.8.203 node3

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

安装docker

apt -y install docker.io

更新国内源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

更新ceph国内源

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
sudo apt-add-repository 'deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-quincy/ buster main'
sudo apt update
源地址:
https://satishdotpatel.github.io/deploy-ceph-storage-using-cephadm/

安装cephadm

apt update
apt install -y cephadm

针对ssd分区

parted -s /dev/sdf mklabel gpt
parted /dev/sdf mkpart primary xfs 00.0GB 10.0GB
parted /dev/sdf mkpart primary xfs 10.0GB 20.0GB
parted /dev/sdf mkpart primary xfs 20.0GB 30.0GB
parted /dev/sdf mkpart primary xfs 30.0GB 40.0GB
parted /dev/sdf mkpart primary xfs 40.0GB 50.0GB
parted /dev/sdf mkpart primary xfs 50.0GB 60.0GB
parted /dev/sdf mkpart primary xfs 60.0GB 70.0GB
parted /dev/sdf mkpart primary xfs 70.0GB 80.0GB
parted /dev/sdf mkpart primary xfs 80.0GB 85.0GB
parted /dev/sdf mkpart primary xfs 85.0GB 90.0GB
parted /dev/sdf mkpart primary xfs 90.0GB 95.0GB
parted /dev/sdf mkpart primary xfs 95.0GB 100.0GB
# lsblk 
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0  63.3M  1 loop /snap/core20/1822
loop1     7:1    0 111.9M  1 loop /snap/lxd/24322
loop2     7:2    0  49.8M  1 loop /snap/snapd/18357
loop3     7:3    0  49.8M  1 loop /snap/snapd/18596
loop4     7:4    0  63.3M  1 loop /snap/core20/1852
sda       8:0    0    80G  0 disk 
├─sda1    8:1    0     1M  0 part 
└─sda2    8:2    0    80G  0 part /
sdb       8:16   0   100G  0 disk 
sdc       8:32   0   100G  0 disk 
sdd       8:48   0   100G  0 disk 
sde       8:64   0   100G  0 disk 
sdf       8:80   0   100G  0 disk 
├─sdf1    8:81   0   9.3G  0 part 
├─sdf2    8:82   0   9.3G  0 part 
├─sdf3    8:83   0   9.3G  0 part 
├─sdf4    8:84   0   9.3G  0 part 
├─sdf5    8:85   0   9.3G  0 part 
├─sdf6    8:86   0   9.3G  0 part 
├─sdf7    8:87   0   9.3G  0 part 
├─sdf8    8:88   0   9.3G  0 part 
├─sdf9    8:89   0   4.7G  0 part 
├─sdf10   8:90   0   4.7G  0 part 
├─sdf11   8:91   0   4.7G  0 part 
└─sdf12   8:92   0   4.7G  0 part

配置bcache盘

apt install bcache-tools -y
modprobe  bcache


make-bcache -C /dev/sdf1 -B /dev/sdb --wipe-bcache
make-bcache -C /dev/sdf2 -B /dev/sdc --wipe-bcache
make-bcache -C /dev/sdf3 -B /dev/sdd --wipe-bcache
make-bcache -C /dev/sdf4 -B /dev/sde --wipe-bcache

echo writeback > /sys/block/bcache0/bcache/cache_mode
echo writeback > /sys/block/bcache1/bcache/cache_mode
echo writeback > /sys/block/bcache2/bcache/cache_mode
echo writeback > /sys/block/bcache3/bcache/cache_mode

lvm分区

vgcreate  data0 /dev/bcache0
lvcreate -l +100%FREE data0

vgcreate  data1 /dev/bcache1
lvcreate -l +100%FREE data1

vgcreate  data2 /dev/bcache2
lvcreate -l +100%FREE data2

安超软件包

cephadm install ceph

初始化集群

mkdir -p /etc/ceph
cephadm bootstrap --mon-ip 172.16.8.201 --allow-fqdn-hostname

部署单机

cephadm bootstrap --mon-ip 172.16.8.201 --allow-fqdn-hostname --single-host-defaults

会有如下输出

Ceph Dashboard is now available at:

             URL: https://node1:8443/
            User: admin
        Password: 8uw3xxz9m9

Enabling client.admin keyring and conf on hosts with "admin" label
Saving cluster configuration to /var/lib/ceph/2304caa0-dd8c-11ed-b671-e93708859cab/config directory
Enabling autotune for osd_memory_target
You can access the Ceph CLI as following in case of multi-cluster or non-default config:

        sudo /usr/sbin/cephadm shell --fsid 2304caa0-dd8c-11ed-b671-e93708859cab -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Or, if you are only running a single cluster on this host:

        sudo /usr/sbin/cephadm shell 

Please consider enabling telemetry to help improve Ceph:

        ceph telemetry on

For more information see:

        https://docs.ceph.com/docs/master/mgr/telemetry/

Bootstrap complete.

设置ceph cli

# alias ceph='cephadm shell -- ceph'
# echo "alias ceph='cephadm shell -- ceph'" >> ~/.bash_profile

ceph -s

免密设置

# ssh-copy-id -f -i /etc/ceph/ceph.pub root@node2
# ssh-copy-id -f -i /etc/ceph/ceph.pub root@node3

添加主机

# ceph orch host add node2

# ceph orch host add node3

查看主机

# ceph orch host ls

设置MGR数量

# ceph orch apply mgr 3
# ceph orch host label add node2 mgr
# ceph orch host label add node3 mgr
# ceph orch apply mgr --placement "node1 node2 node3"

删除mgr

ceph orch apply mgr “2 node1 node2 ”

打开 balancer 模块

# ceph balancer on

默认模式为 crush-compat。可使用以下方法更改模式

# ceph balancer mode upmap

或者

# ceph balancer mode crush-compat

使用 crush-compat 模式,它与旧的客户端向后兼容,并且会随着时间的推移对数据分发进行小更改,以确保 OSD 平等地使用

查看状态

ceph balancer status

balancer 是 Ceph Manager(ceph-mgr)的一个模块,用于优化 OSD 之间放置组(PG)放置,从而实现平衡的分发(可自动或监管方式
启用 balancer 模块

ceph mgr module enable balancer

启用报警模块

ceph mgr module enable alerts

查看

ceph mgr module ls | more

配置smtp

[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_host smtp.example.com
[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_destination [email protected]
[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_sender [email protected]

[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_port 587

验证用户名及密码

[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_user admin1234
[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_password admin1234

设置检查周期

[ceph: root@host01 /]# ceph config set mgr mgr/alerts/interval "5m"

立即发送告警
[ceph: root@host01 /]# ceph alerts send

  • 设置crash分析

通过使用 Ceph 管理器 crash 模块,您可以收集有关守护进程 crashdumps 的信息,并将其存储在 Ceph Storage 集群中,以便进一步分析。默认情况下,守护进程崩溃转储在 /var/lib/ceph/crash 中转储。您可以使用选项 crash dir 进行配置。崩溃目录按时间、日期和随机生成的 UUID 命名,包含元数据文件 meta 和最新的日志文件,其 crash_id 是相同的。

您可以使用 ceph-crash.service 自动提交这些崩溃,并在 Ceph 监控器中保留。ceph-crash.service 监视 crashdump 目录,并使用 ceph crash post 上传它们。

RECENT_CRASH heath 消息是 Ceph 集群中最常见的运行状况消息之一。此健康消息表示,一个或多个 Ceph 守护进程最近崩溃,且崩溃尚未存档或被管理员确认。这可能表示软件错误、硬件问题(如磁盘失败)或其它问题。选项 mgr/crash/warn_recent_interval 控制最近一次表示的时间周期,默认为两周。您可以运行以下命令来禁用警告

确定启用了crash

ceph mgr module ls | more

元数据文件是存储在 crash dir 中作为 meta 的 JSON blob。您可以调用 ceph 命令 -i - 选项,该选项会从 stdin 读取

ceph crash post -i meta

出所有新的以及归档的崩溃信息的时间戳或 UUID 崩溃 ID

ceph crash ls

列出所有新崩溃信息的时间戳或 UUID 崩溃 ID

ceph crash ls-new

列出按年龄分组的保存崩溃信息的概述

ceph crash stat

查看保存崩溃的详情

ceph crash info 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d

删除比 KEEP days 旧的已保存的崩溃:其中 KEEP 必须是一个整数。

ceph crash prune 60

对崩溃报告进行归档,使其不再被视为 RECENT_CRASH 健康检查,且不会出现在 crash ls-new 输出中。它会出现在 crash ls 中

ceph crash archive 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d

记录所有崩溃报告

ceph crash archive-all

删除崩溃转储

ceph crash rm 2022-05-24T19:58:42.549073Z_b2382865-ea89-4be2-b46f-9a59af7b7a2d
  • 部署mon
# ceph orch host label add node2 mon
# ceph orch host label add node3 mon


ceph orch apply mon --placement="3 node1 node2 node3"
  • 部署mds
ceph orch host label add node1 mds
ceph orch host label add node2 mds
ceph orch host label add node3 mds
  • 部署OSD
磁盘要求
该设备不能有分区。
不得挂载该设备。
该设备不得包含文件系统。
该设备不得包含 Ceph BlueStore OSD。
该设备必须大于 5 GB。

注意:

在 Red Hat Ceph Storage 6.0 中,由于已知的错误,OSD、DB 或 WAL 部署不支持预先创建的 LVM 磁盘。

从 Red Hat Ceph Storage 6.0 开始,支持预先创建的 LVM 磁盘,包括 DB 和 WAL 设备。

设置osd自动管理内存

ceph config set osd osd_memory_target_autotune true

创建osd

ceph orch daemon add osd node1:/dev/data0/lvol0
ceph orch daemon add osd node1:/dev/data1/lvol0
ceph orch daemon add osd node1:/dev/data2/lvol0



ceph orch daemon add osd node2:/dev/data0/lvol0
ceph orch daemon add osd node2:/dev/data1/lvol0
ceph orch daemon add osd node2:/dev/data2/lvol0


ceph orch daemon add osd node3:/dev/data0/lvol0
ceph orch daemon add osd node3:/dev/data1/lvol0
ceph orch daemon add osd node3:/dev/data2/lvol0

高级

ceph orch apply -i /path/to/osd_spec.yml --dry-run
service_type: osd
service_id: osd_using_paths
placement:
  hosts:
    - Node01
    - Node02
spec:
  data_devices:
    paths:
    - /dev/sdb
  db_devices:
    paths:
    - /dev/sdc
  wal_devices:
    paths:
    - /dev/sdd

部署rgw

$ radosgw-admin realm create --rgw-realm=default --default
$ radosgw-admin zonegroup create --rgw-zonegroup=default --master --default
$ radosgw-admin zone create --rgw-zonegroup=default --rgw-zone=us-east-1 --master --default
$ ceph orch apply rgw default us-east-1 --placement="1 mon0"

查看状态

systemctl status ceph-* --no-pager
docker ps
ceph -s

安装awscli工具

apt install awscli -y

创建用户

# radosgw-admin user create --uid=wuyeliang --display-name=wuyeliang --access-key=wuyeliang --secret-key=wuyeliang

创建bucket

$ aws s3 mb s3://wuyeliang-test --endpoint-url http://node1
make_bucket: wuyeliang-test

上传文件

$ aws s3 cp /etc/hosts s3://wuyeliang-test --endpoint-url http://node0
upload: ../etc/hosts to s3://wuyeliang-test/hosts

卸载集群

cephadm rm-cluster --fsid f64f341c-655d-11eb-8778-fa163e914bcc

删除repo

cephadm rm-repo

修改参数
允许删除pool

ceph config set mon mon_allow_pool_delete true

设置单副本

ceph config set  global osd_pool_default_size  1

删除pool

ceph osd pool delete ceph-rbd ceph-rbd --yes-i-really-really-mean-it

你可能感兴趣的:(ceph,ceph,bcache,osd,ubuntu,mds)