User Tools

Site Tools


решение_ceph

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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
решение_ceph.1622279038.txt.gz · Last modified: 2021/05/29 12:03 by val