This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
решение_ceph [2021/05/29 12:03] val |
решение_ceph [2026/10/19 19:27] (current) val [MON] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Решение Ceph ====== | ====== Решение Ceph ====== | ||
| + | |||
| + | * [[https://youtu.be/OB5jysMLjIM|Разворачиваем распределенное отказоустойчивое хранилище Ceph за 45 минут]] | ||
| + | |||
| * [[https://ru.wikipedia.org/wiki/Ceph|Ceph — свободная программная объектная сеть хранения (Материал из Википедии)]] | * [[https://ru.wikipedia.org/wiki/Ceph|Ceph — свободная программная объектная сеть хранения (Материал из Википедии)]] | ||
| Line 8: | Line 11: | ||
| * [[http://onreader.mdl.ru/LearningCeph/content/index.html|Практическое руководство по разработке, реализации и управлению вашей управляемой программным обеспечением, массивно масштабируемой системы хранения Ceph]] | * [[http://onreader.mdl.ru/LearningCeph/content/index.html|Практическое руководство по разработке, реализации и управлению вашей управляемой программным обеспечением, массивно масштабируемой системы хранения Ceph]] | ||
| + | * [[http://onreader.mdl.ru/MasteringCeph.2ed/content/index.html|Полное руководство Ceph, 2е изд.]] | ||
| + | * [[http://onreader.mdl.ru/CephCookbook/content/index.html|Книга рецептов Ceph]] | ||
| ===== Развертывание ===== | ===== Развертывание ===== | ||
| * [[https://docs.ceph.com/en/latest/install/manual-deployment/|MANUAL DEPLOYMENT]] | * [[https://docs.ceph.com/en/latest/install/manual-deployment/|MANUAL DEPLOYMENT]] | ||
| + | * [[https://www.server-world.info/en/note?os=Debian_11&p=ceph14&f=1|Debian 11 : Ceph Nautilus]] | ||
| ==== Установка ==== | ==== Установка ==== | ||
| <code> | <code> | ||
| nodeN# apt install ceph | nodeN# apt install ceph | ||
| + | |||
| + | nodeN# ceph -v | ||
| </code> | </code> | ||
| ==== MON ==== | ==== MON ==== | ||
| + | |||
| + | * [[https://docs.ceph.com/en/latest/man/8/ceph-mon/|CEPH-MON – CEPH MONITOR DAEMON]] | ||
| === Начальная конфигурация === | === Начальная конфигурация === | ||
| Line 27: | Line 37: | ||
| fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993 | fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993 | ||
| mon initial members = node3,node4,node5 | mon initial members = node3,node4,node5 | ||
| - | mon host = 192.168.13.3,192.168.13.4,192.168.13.5 | + | mon host = 192.168.X.3,192.168.X.4,192.168.X.5 |
| - | public network = 192.168.13.0/24 | + | public network = 192.168.X.0/24 |
| auth cluster required = none | auth cluster required = none | ||
| auth service required = none | auth service required = none | ||
| auth client required = none | auth client required = none | ||
| - | </code><code> | ||
| - | node3# | ||
| - | ssh-keygen | ||
| - | ssh-copy-id node4 | ||
| - | ssh-copy-id node5 | ||
| </code><code> | </code><code> | ||
| scp /etc/ceph/ceph.conf node4:/etc/ceph/ | scp /etc/ceph/ceph.conf node4:/etc/ceph/ | ||
| scp /etc/ceph/ceph.conf node5:/etc/ceph/ | scp /etc/ceph/ceph.conf node5:/etc/ceph/ | ||
| </code><code> | </code><code> | ||
| - | monmaptool --create --add node3 192.168.13.3 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap | + | monmaptool --create --add node3 192.168.X.3 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap |
| - | monmaptool --add node4 192.168.13.4 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap | + | monmaptool --add node4 192.168.X.4 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap |
| - | monmaptool --add node5 192.168.13.5 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap | + | monmaptool --add node5 192.168.X.5 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap |
| </code><code> | </code><code> | ||
| monmaptool --print /tmp/monmap | monmaptool --print /tmp/monmap | ||
| Line 50: | Line 55: | ||
| scp /tmp/monmap node5:/tmp/ | scp /tmp/monmap node5:/tmp/ | ||
| </code><code> | </code><code> | ||
| - | bash -c ' | + | node3# bash -c ' |
| sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node3 | sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node3 | ||
| ssh node4 sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node4 | ssh node4 sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node4 | ||
| Line 56: | Line 61: | ||
| ' | ' | ||
| </code><code> | </code><code> | ||
| - | bash -c ' | + | node3# bash -c ' |
| sudo -u ceph ceph-mon --mkfs -i node3 --monmap /tmp/monmap | sudo -u ceph ceph-mon --mkfs -i node3 --monmap /tmp/monmap | ||
| ssh node4 sudo -u ceph ceph-mon --mkfs -i node4 --monmap /tmp/monmap | ssh node4 sudo -u ceph ceph-mon --mkfs -i node4 --monmap /tmp/monmap | ||
| Line 62: | Line 67: | ||
| ' | ' | ||
| </code><code> | </code><code> | ||
| - | ls -l /var/lib/ceph/mon/ceph-node3 | + | node3# ls -l /var/lib/ceph/mon/ceph-node3 |
| </code><code> | </code><code> | ||
| - | bash -c ' | + | node3# bash -c ' |
| systemctl start ceph-mon@node3 | systemctl start ceph-mon@node3 | ||
| systemctl enable ceph-mon@node3 | systemctl enable ceph-mon@node3 | ||
| Line 72: | Line 77: | ||
| ssh node5 systemctl enable ceph-mon@node5 | ssh node5 systemctl enable ceph-mon@node5 | ||
| ' | ' | ||
| + | </code> | ||
| + | |||
| + | * [[https://www.suse.com/support/kb/doc/?id=000019960|Cluster status shows a "mons are allowing insecure global_id reclaim" health warning]] | ||
| + | |||
| + | <code> | ||
| + | node3# ceph mon enable-msgr2 | ||
| + | |||
| + | node3# ceph config set mon mon_warn_on_insecure_global_id_reclaim false | ||
| + | node3# ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false | ||
| </code><code> | </code><code> | ||
| # ceph -s | # ceph -s | ||
| Line 82: | Line 96: | ||
| </code><code> | </code><code> | ||
| MON_DOWN 1/3 mons down, quorum node4,node5 | MON_DOWN 1/3 mons down, quorum node4,node5 | ||
| - | mon.node3 (rank 0) addr 192.168.13.3:6789/0 is down (out of quorum) | + | mon.node3 (rank 0) addr 192.168.X.3:6789/0 is down (out of quorum) |
| + | </code> | ||
| + | === Замена MON === | ||
| + | <code> | ||
| + | node3# ceph mon remove node4 | ||
| + | |||
| + | node3# ceph mon getmap -o /tmp/monmap | ||
| + | node3# monmaptool --print /tmp/monmap | ||
| + | node3# monmaptool --add node7 192.168.13.7 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap | ||
| + | node3# scp /tmp/monmap node7:/tmp/monmap | ||
| + | |||
| + | node3# cat /etc/ceph/ceph.conf | ||
| + | ... | ||
| + | mon initial members = node3,node7,node5 | ||
| + | mon host = 192.168.13.3,192.168.13.7,192.168.13.5 | ||
| + | ... | ||
| + | |||
| + | node3# | ||
| + | scp /etc/ceph/ceph.conf node5:/etc/ceph/ | ||
| + | scp /etc/ceph/ceph.conf node6:/etc/ceph/ | ||
| + | scp /etc/ceph/ceph.conf node7:/etc/ceph/ | ||
| + | |||
| + | node7# | ||
| + | sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node7 | ||
| + | sudo -u ceph ceph-mon --mkfs -i node7 --monmap /tmp/monmap | ||
| + | systemctl enable ceph-mon@node7 --now | ||
| + | |||
| + | sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node7 | ||
| + | systemctl enable ceph-mgr@node7 --now | ||
| </code> | </code> | ||
| + | * [[Технология KVM#Использование Ceph RBD в качестве диска]] | ||
| + | * [[Сервис iSCSI]] | ||
| ==== MGR ==== | ==== MGR ==== | ||
| + | |||
| + | * [[https://docs.ceph.com/en/latest/mgr/index.html|CEPH MANAGER DAEMON]] | ||
| <code> | <code> | ||
| - | bash -c ' | + | node3# bash -c ' |
| sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node3 | sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node3 | ||
| systemctl start ceph-mgr@node3 | systemctl start ceph-mgr@node3 | ||
| Line 104: | Line 150: | ||
| # ceph -s | # ceph -s | ||
| - | # ps ax | grep ceph | + | debian13# ceph health detail |
| + | debian13# ceph health mute MGR_MODULE_DEPENDENCY | ||
| </code> | </code> | ||
| + | |||
| ==== OSD ==== | ==== OSD ==== | ||
| + | |||
| + | * [[https://docs.ceph.com/en/latest/man/8/ceph-osd/|CEPH-OSD – CEPH OBJECT STORAGE DAEMON]] | ||
| === Начальная конфигурация === | === Начальная конфигурация === | ||
| <code> | <code> | ||
| - | bash -c ' | + | # lsblk |
| + | </code><code> | ||
| + | node3# bash -c ' | ||
| ceph-volume lvm create --data /dev/sdb | ceph-volume lvm create --data /dev/sdb | ||
| ssh node4 ceph-volume lvm create --data /dev/sdb | ssh node4 ceph-volume lvm create --data /dev/sdb | ||
| Line 143: | Line 195: | ||
| <code> | <code> | ||
| + | ceph osd tree | grep down | ||
| + | |||
| ceph osd safe-to-destroy osd.0 | ceph osd safe-to-destroy osd.0 | ||
| OSD(s) 0 are safe to destroy without reducing data durability. | OSD(s) 0 are safe to destroy without reducing data durability. | ||
| Line 157: | Line 211: | ||
| ceph osd crush reweight osd.2 0.00389 | ceph osd crush reweight osd.2 0.00389 | ||
| - | node3.corp13.un:~# ceph osd df | + | node3# ceph osd df |
| ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS | ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS | ||
| 0 hdd 0 0.83000 4.00GiB 1.01GiB 2.99GiB 25.30 0.37 0 | 0 hdd 0 0.83000 4.00GiB 1.01GiB 2.99GiB 25.30 0.37 0 | ||
| Line 169: | Line 223: | ||
| ==== OSD POOL ==== | ==== OSD POOL ==== | ||
| + | |||
| + | * [[https://docs.ceph.com/en/latest/rados/operations/pools/|POOLS]] | ||
| === Расчет параметров и создание POOL === | === Расчет параметров и создание POOL === | ||
| - | <code> | ||
| - | Total PGs = (Total_number_of_OSD * 100) / max_replication_count | ||
| - | 5*100/3 = 166,6... | + | * [[https://docs.ceph.com/en/latest/rados/operations/placement-groups/|PLACEMENT GROUPS]] |
| - | ceph osd pool create test-pool1 180 | + | <code> |
| + | Total PGs = OSDs * 100 / pool_size | ||
| - | ceph -s | + | 4*100/3 = 133,3... |
| - | ... | + | </code><code> |
| - | pgs: 180 active+clean | + | # ceph osd pool create test-pool1 128 |
| - | ceph pg dump | + | # ceph -s |
| + | </code><code> | ||
| + | ... | ||
| + | health: HEALTH_WARN | ||
| + | 1 pool(s) do not have an application enabled | ||
| + | ... | ||
| + | pgs: 128 active+clean | ||
| + | ... | ||
| + | </code><code> | ||
| + | # ceph pg dump | ||
| - | ceph osd lspools | + | # ceph osd lspools |
| </code> | </code> | ||
| === Изменение параметров POOL === | === Изменение параметров POOL === | ||
| <code> | <code> | ||
| - | ceph osd pool set test-pool1 pg_num 250 | + | ceph osd pool set test-pool1 pg_num 256 |
| - | ceph osd pool set test-pool1 pgp_num 250 | + | ceph osd pool set test-pool1 pgp_num 160 ... 192 ... 224 ... 256 |
| ceph osd pool get test-pool1 size | ceph osd pool get test-pool1 size | ||
| Line 200: | Line 264: | ||
| ==== RBD POOL ==== | ==== RBD POOL ==== | ||
| + | * Reliable Autonomic Distributed Object Store = RADOS | ||
| * [[https://docs.ceph.com/en/latest/rbd/rados-rbd-cmds/|BASIC BLOCK DEVICE COMMANDS]] | * [[https://docs.ceph.com/en/latest/rbd/rados-rbd-cmds/|BASIC BLOCK DEVICE COMMANDS]] | ||
| + | * [[https://docs.ceph.com/en/latest/man/8/rbd/|rbd – manage rados block device (RBD) images]] | ||
| <code> | <code> | ||
| - | ceph df | + | node3# ceph df |
| - | rbd pool init test-pool1 | + | node3# rbd pool init test-pool1 |
| - | rbd create -p test-pool1 rbd1 --size 1024 | + | |
| - | rbd list test-pool1 | + | node3# ceph -s |
| - | rbd info test-pool1/rbd1 | + | |
| - | </code><code> | + | </code> |
| - | rbd resize --size 3G test-pool1/rbd1 | + | |
| - | rbd resize --size 3584M test-pool1/rbd1 | + | * Технология KVM [[Технология KVM#Использование Ceph RBD в качестве диска]] |
| + | |||
| + | <code> | ||
| + | |||
| + | node3# rbd create -p test-pool1 rbd1 --size 1G | ||
| + | |||
| + | node3# rbd list test-pool1 | ||
| + | |||
| + | node3# rbd info test-pool1/rbd1 | ||
| + | |||
| + | node3# rbd status test-pool1/rbd1 | ||
| + | |||
| + | node3# rbd lock list test-pool1/rbd1 | ||
| + | |||
| + | node3# rbd device map test-pool1/rbd1 | ||
| + | /dev/rbd0 | ||
| + | |||
| + | # mount -t ntfs3 /dev/rbd0p1 /mnt/ | ||
| + | |||
| + | # umount /mnt/ | ||
| + | |||
| + | # rbd device unmap /dev/rbd0 | ||
| + | </code> | ||
| + | |||
| + | * Изменение размера блочного устройствва | ||
| + | |||
| + | <code> | ||
| + | node3# rbd resize --size 3584M test-pool1/rbd1 | ||
| + | |||
| + | node3# ###bash -c ' | ||
| + | systemctl restart tgt | ||
| + | ssh node4 systemctl restart tgt | ||
| + | ssh node5 systemctl restart tgt | ||
| + | ' | ||
| - | nodeN# systemctl restart tgt | + | node3# ### rbd rm test-pool1/rbd1 |
| </code> | </code> | ||
| Line 235: | Line 333: | ||
| scp /etc/tgt/conf.d/ceph.conf node5:/etc/tgt/conf.d/ | scp /etc/tgt/conf.d/ceph.conf node5:/etc/tgt/conf.d/ | ||
| </code><code> | </code><code> | ||
| - | bash -c ' | + | node3# bash -c ' |
| systemctl restart tgt | systemctl restart tgt | ||
| ssh node4 systemctl restart tgt | ssh node4 systemctl restart tgt | ||