Differences

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

Link to this comparison view

Next revision
Previous revision
doc:ceph [2023/08/02 15:02] – created - external edit 127.0.0.1doc:ceph [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-# Ceph-Setup 
- 
-## Host Setup (Stand 2017-10-17) 
- 
-Vorerst verwenden wir die beiden Intel-Server für CEPH Tests. Beide 
-haben ein [RAID1](RAID1 "wikilink") bestehend aus 2x250GB Harddisk. Auf 
-diesem [RAID1](RAID1 "wikilink") sind 4 Logical Volumes installiert: 
- 
-1.  /boot - 2GB 
-2.  /rootfs - 10GB 
-3.  swap - 2GB 
-4.  /var - 2GB 
- 
-### ceph1 
- 
-``` 
-    cavy@ceph1:~$ sudo ceph-disk list 
-    /dev/dm-0 other, ext4, mounted on / 
-    /dev/dm-1 swap, swap 
-    /dev/dm-2 other, ext4, mounted on /boot 
-    /dev/dm-3 other, ext4, mounted on /var 
-    /dev/md0 other, [[LVM2]]_member 
-    /dev/sda : 
-     /dev/sda1 other, linux_raid_member 
-    /dev/sdb : 
-     /dev/sdb1 ceph data, active, cluster ceph, osd.0 
-    /dev/sdc : 
-     /dev/sdc1 ceph data, active, cluster ceph, osd.1 
-    /dev/sdd : 
-     /dev/sdd1 other, linux_raid_member 
-    /dev/sde : 
-     /dev/sde1 ceph data, active, cluster ceph, osd.4 
-    /dev/sdf other, unknown 
-    /dev/sdg other, unknown 
-    /dev/sdh : 
-     /dev/sdh1 ceph journal 
-     /dev/sdh2 ceph journal 
-     /dev/sdh3 ceph journal 
-     /dev/sdh4 ceph journal 
-     /dev/sdh5 ceph journal 
-``` 
- 
-#### Frontalansicht mit Seriennummern der Devices für ceph1 
- 
-\|\|**HD 250GB** 5 0014ee 65921284e \*) \|\|**HD 1TB** \|\|**HD 1TB** 
-\|\|\|\|Anschlüsse \|\| \|\|**HD 250GB** 5 0014ee 603cbd93f \*) \|\|**HD 
-1TB** \|\|**HD 1TB** 5 0014ee 603ffa30c \|\|**SSD 240G** 5 5cd2e4 
-14ddb886f \|\|**Hd 1TB** 5 0014ee 607768171 \|\| 
- 
-### ceph2 
- 
-``` 
-cavy@ceph2:~$ sudo ceph-disk list 
-/dev/dm-0 other, ext4, mounted on / 
-/dev/dm-1 swap, swap 
-/dev/dm-2 other, ext4, mounted on /boot 
-/dev/dm-3 other, ext4, mounted on /var 
-/dev/md0 other, [[LVM2]]_member 
-/dev/sda : 
- /dev/sda1 other, linux_raid_member 
-/dev/sdb : 
- /dev/sdb1 ceph data, active, cluster ceph, osd.2 
-/dev/sdc : 
- /dev/sdc1 ceph data, active, cluster ceph, osd.3 
-/dev/sdd : 
- /dev/sdd1 other, linux_raid_member 
-/dev/sde : 
- /dev/sde1 ceph data, active, cluster ceph, osd.5 
-/dev/sdf other, unknown 
-/dev/sdg other, unknown 
-/dev/sdh : 
- /dev/sdh1 ceph journal 
- /dev/sdh2 ceph journal 
- /dev/sdh3 ceph journal 
- /dev/sdh4 ceph journal 
- /dev/sdh5 ceph journal 
-``` 
- 
-#### Frontalansicht mit Seriennummern der Devices für ceph2 
- 
-\|\|**HD 250GB** 5 0014ee 6ae762535 \*) \|\|**HD 1TB** \|\|**HD 1TB** 5 
-0014ee 607767c31 \|\|\|\|Anschlüsse \|\| \|\|**HD 250GB** 5 0014ee 
-6ae762bc6 \*) \|\|**HD 1TB** \|\|**HD 1TB** \|\|**HD 1TB** 5 0014ee 
-65ccbc69a \|\|**SSD 240GB** 5 5cd2e4 14ddb6321 \|\| 
- 
--   ) das sind **Vermutungen** 
- 
-Cluster Setup (Stand 04.04.2017) 
--------------------------------- 
- 
-**Monitore:** 
- 
-monmap e3: **3 mons** at 
-{**ceph1=172.16.16.17**:6789/0,**ceph2=172.16.16.18**:6789/0,**ceph3=172.16.16.19**:6789/0} 
- 
-**OSD\'s:** 
- 
-`. host ceph1 - `**`osd.0`` ``osd.1`` ``osd.4`**\ 
-`. host ceph2 - `**`osd.2`` ``osd.3`` ``osd.5`** 
- 
-Wiederkehrende Probleme 
------------------------ 
- 
-Wenn nach einem Reboot die Journale wieder mal nicht automatisch 
-mounten, weil sie nicht die richtige Permissions **ceph:ceph** haben, 
-dann haben die Partitionen nicht die richtige parttype, dann folgendes 
-machen: zb ceph2: 
- 
-``` 
-. sgdisk --typecode=3:45b0969e-9b03-4f30-b4c6-b4b80ceff106 /dev/sdf 
-. sgdisk --typecode=4:45b0969e-9b03-4f30-b4c6-b4b80ceff106 /dev/sdf 
-. sgdisk --typecode=5:45b0969e-9b03-4f30-b4c6-b4b80ceff106 /dev/sdf 
-``` 
- 
-Einrichtung 
------------ 
- 
-Die Einrichtung eines **neuen** Ceph-Admin-Nodes folgt der offiziellen 
-[Dokumentation](http://ceph.com/docs/master/start/quick-start-preflight/ "wikilink") 
-von ceph. 
- 
-### Auf allen Nodes: 
- 
--   User **cavy** anlegen und den ssh-key vom Admin-Node ins 
-    .ssh/authorized\_keys File kopieren. 
--   User **cavy** sudo-Rechte geben 
- 
-<!-- --> 
- 
-    echo "cavy ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cavy 
- 
--   Die ceph Sourceslist anlegen 
--   Den Ceph-Repo-Key installieren 
- 
-<!-- --> 
- 
-    wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add - 
- 
-### Am Admin-Node: 
- 
--   User **cavy** anlegen. Als Passwort den Hashwert einer beliebigen 
-    Datei verwenden; das Passwort wird nie gebraucht werden. 
--   ssh-key generieren 
--   Installation von ceph vorbereiten - gleich als User **cavy** 
-    erledigen. 
- 
-<!-- --> 
- 
-    wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add - 
-    echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list 
- 
--   ceph-deploy installieren 
- 
-<!-- --> 
- 
-    sudo apt-get update 
-    sudo apt-get install ceph-deploy 
- 
--   Einen neuen cluster anlegen 
--   Die Konfigurationsdatei anpassen 
--   Den ersten Monitor anlegen 
--   [OSDs](OSDs "wikilink") auf den Nodes anlegen 
- 
-Libvirt/KVM 
------------ 
- 
-Mehr Info dazu gibt\'s auch auf der 
-[Ceph-Seite](http://docs.ceph.com/docs/v0.94.5/rbd/libvirt/ "wikilink"). 
-Leider geht noch nicht alles sauber mit dem machine-manager. Ich bin mal 
-so vorgegangen: 
- 
--   E7inen Pool am Ceph-Cluster angelegt 
- 
-<!-- --> 
- 
-    ceph osd pool create images 200 200 
- 
--   Authentication für libvirt einrichten. 
- 
-<!-- --> 
- 
-    ceph auth get-or-create client.libvirt mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' 
- 
--   Den Pool am Virtualisierungsserver mit virsh angelegt. Dazu gibt\'s 
-    gute Hinweise auf den Seiten von libvirt, 
-    <https://libvirt.org/storage.html#StorageBackendRBD> und 
-    <http://libvirt.org/formatsecret.html#CephUsageType>. Die beiden 
-    Files, die ich zum Anlegen des Pools verwendet habe sind diese: 
- 
-ceph-secret.xml 
- 
-    <secret ephemeral='no' private='yes'> 
-      <description>Secret holding CEPH passphrase</description> 
-      <uuid>dcf50f8c-4374-416f-8718-e33815f2cec0</uuid> 
-      <usage type='ceph'> 
-        <name>libvirt</name> 
-      </usage> 
-    </secret> 
- 
-pool-define.xml 
- 
-    <pool type='rbd'> 
-      <name>images</name> 
-      <source> 
-        <host name='ceph1.admin.mur.at' port='6789'/> 
-        <host name='ceph2.admin.mur.at' port='6789'/> 
-        <host name='ceph3.admin.mur.at' port='6789'/> 
-        <name>images</name> 
-        <auth username='libvirt' type='ceph'> 
-          <secret uuid='dcf50f8c-4374-416f-8718-e33815f2cec0' /> 
-        </auth> 
-      </source> 
-    </pool> 
- 
--   Damit legt eins (als root!) zuerst ein Secret an: 
- 
-<!-- --> 
- 
-    virsh secret-define ceph-secret.xml 
- 
--   Dann wird das secret mit dem KEY des client.libvirt verknüpft (der 
-    KEY kann auf ceph1 mit 
-        ceph auth list 
- 
-    gefunden werden: 
- 
-<!-- --> 
- 
-    virsh secret-set-value dcf50f8c-4374-416f-8718-e33815f2cec0 KEY 
- 
--   Damit ist das Secret irgendwo (ich hab selber keine Ahnung wo) in 
-    der Virtualiseriungsumgebung gespeichert und kann später in den 
-    Konfigurationsdateien verwenden werden. 
- 
-<!-- --> 
- 
--   Nun kann der Pool angelegt (wieder als root!) werden: 
- 
-<!-- --> 
- 
-    virsh pool-define pool-define.xml 
- 
-Jetzt steht der Pool mal prinzipiell auch im virt-manager zur Verfügung 
-(wo er noch gestartet werden muss). Anlegen von Files für Vserver-Images 
-funktioniert auch schon, nur das Einbinden der Images in einen Vserver 
-erfordert noch einen Zwischenschritt mit virsh. Wir verwenden übrigens 
-das selbe Secret auf allen Virtualisierungsservern, damit die VServer 
-auch mirgriert werden können. 
- 
-VServer einrichten 
------------------- 
- 
-Das ist jetzt auf eine eigene 
-[WikiSeite](Dokumentation/VServer "wikilink") gewandert. 
- 
-Snapshots 
---------- 
- 
-**Wir verwenden Snapshots als Teil des Backups, das 
-[hier](Dokumentation/CephBackup "wikilink") dokumentiert ist!** 
- 
-Image Snapshots werden mit dem Tool rbd gemacht. Die Doku für die 
-derzeit verwendete CEPH-Version ist 
-[hier](http://docs.ceph.com/docs/v0.94.3/rbd/rbd-snapshot/ "wikilink") 
-zu finden. Um einen Snapshot von einem Image zu erstellen, muss I/O der 
-Maschine gestoppt werden. Die wahrscheinlich beste Lösung ist es, die 
-virtuelle Maschine zu pausieren (virsh suspend Domain). Dann kann ein 
-Snapshot sicher erstellt werden: 
- 
-\--(Auf ceph1 ist jetzt ein Mechanismus zum automatischen erstellen von 
-Snapshots eingerichtet: **/home/cavy/cephsnap**. Das Skript ist 
-dokumentiert und läuft derzeit für die **nelke** und **wal**, einmal pro 
-Tag (Nacht) um 5 Minuten nach 4 Uhr. Testhalber heben wir Snapshots 
-vorerst nur für einen Tag (24 Stunden) auf.)\-- 
- 
-Die CEPH-Doku hat eine eigene Seite zum Snapshot-Mechanismus: [Snapshots 
-mit 
-CEPH](http://docs.ceph.com/docs/master/rbd/rbd-snapshot/ "wikilink"). 
- 
-Icinga Plugin Howto 
-------------------- 
- 
-Damit Icinga-Pluings am Ceph-Cluster ausgeführt werden können, muss sich 
-der Client authentifizieren. Aus diesem Grund muss am Ceph-Server ein 
-spezieller Keyring für den user Icinga/Nagios angelegt werden. So gehts: 
- 
-     cavy@ceph2:~$ ceph auth get-or-create client.nagios mon 'allow r' > client.nagios.keyring 
- 
-Beim Ausführen des Plugins mit dem Keyring schauts so aus: 
- 
-    /usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /usr/lib/nagios/plugins/key/client.nagios.keyring 
- 
-Das ganze funktioniert via nagios-nrpe-server! 
- 
-Verschiedenes 
-------------- 
- 
-Ceph verwendet für einige Dinge die **Type Codes** von GPT. Diese sind 
-([hier](http://www.rodsbooks.com/gdisk/walkthrough.html "wikilink") 
-gefunden): 
- 
--   **f800** für [OSDs](OSDs "wikilink") 
--   **f802** für Journale 
--   **/var/lib/ceph** in **/etc/updatedb.conf** zu **PRUNEPATHS** 
-    hinzugefügt. Tipp von 
-    [hier](https://swamireddy.wordpress.com/2017/01/02/ceph-performance-tips/ "wikilink"). 
- 
-TODO 
----- 
- 
--   \--(Snapshots: Einrichtung)\--, Tests, Benchmarks 
--   \--(Hot-Migration Testen )\-- 
--   Auf Basis der gesammelten Daten Konzept für Cluster erstellen 
  
doc/ceph.1690988562.txt.gz · Last modified: by 127.0.0.1