Server/storage-ng: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 113: Zeile 113:
|}
|}


== Nutzerverwaltung ==
== Konten für Clients ==


[[Datei:ceph-user-mgt.png]]
[[Datei:ceph-user-mgt.png]]


[https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/4/html/administration_guide/ceph-user-management Die Dokumentation zu ''Red Hat Ceph Storage'' ist eine gute Dokumentation für die Verwaltung von Konten (und ihren Berechtigungen) für Ceph.]


Eine gute Dokumentation für die Nutzerweinrichtung und das Rechtemanagement befindet sich [https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/4/html/administration_guide/ceph-user-management hier]
Für die Verwendung - also auch den Zugriff - auf den Speicher (mit Ceph) braucht es einen Schlüsselbund.


Um Zugriff auf den Storage Cluster zu erhalten muss man einen Schlüsselbund erstellen.
(Anmelden auf einem Gerät, wo der Speicher (mit Ceph) liegt)
: <code>ssh root@</code>…


Beispiel für einen neuen Nutzer ''fnord''
Erstellen von einem Schlüsselbund (für Ceph) für ein Konto mit einer beispielhaften Bezeichnung ''fnord''
: <code>ceph-authtool --create-keyring /etc/ceph/ceph.client.fnord.keyring --gen-key -n client.fnord</code>


  ceph-authtool --create-keyring /etc/ceph/ceph.client.fnord.keyring --gen-key -n client.fnord
Ändern der Berechtigung für das beispielhafte Konto ''fnord''
:: beispielhafte, aber zweckmäßige, Berechtigungen für das Lesen und Schreiben im Pool (für Ceph) [[{{ns:100}}:Server/cluster01#Proxmox Ceph CephFS Pool cpool_*|cpool_]]data (dem Speicher (für Ceph) vom [[C3D2]])
: <code>ceph-authtool -n client.fnord --cap mds 'allow' --cap osd 'allow rw pool=cpool_data' --cap mon 'allow r' /etc/ceph/ceph.client.fnord.keyring</code>


Importieren vom Schlüsselbund (für Ceph) für das beispielhafte Konto ''fnord''
: <code>ceph auth import -i /etc/ceph/ceph.client.fnord.keyring</code>


Als nächstes geben wir dem neu erstellten Nutzer die Berechtigungen:
Wir können uns  in dem wir folgendes eingeben


  ceph-authtool -n client.fnord --cap mds 'allow' --cap osd 'allow rw pool=cpool_data' --cap mon 'allow r' /etc/ceph/ceph.client.fnord.keyring
Anzeigen der Informationen für das Authentifizieren vom Client (für Ceph) für das beispielhafte Konto ''fnord''
:: … um sich vom Erfolg der Einrichtung zu überzeugen
:: … samt dem geheimen Schlüssel
:: … samt den Berechtigungen
: <code>ceph auth get client.fnord</code>
<pre>
[client.fnord]
        key = XXXXXXXXXXXXXXXXXXXXX
        caps mds = "allow"
        caps mon = "allow r"
        caps osd = "allow rw pool=cpool_data"
</pre>


gibt fnord die Möglichkeit  schreibend und lesend auf den *cpool_data* zu zugreifen
<!--
 
vater@: unterbrechung der überarbeitung
Danach importieren wir den Schlüssel:
!-->
 
  ceph auth import -i /etc/ceph/ceph.client.fnord,keyring
 
Wir können uns vom Erfolg der Einrichtung überzeugen in dem wir folgendes eingeben
 
  ceph auth get client.fnord
 
  <nowiki>[client.fnord]
key = XXXXXXXXXXXXXXXXXXXXX
caps mds = "allow"
caps mon = "allow r"
caps osd = "allow rw pool=cpool_data]]"</nowiki>


Das secret sollte in eine Datei geschrieben werden und auf den Client verschoben werden
Das secret sollte in eine Datei geschrieben werden und auf den Client verschoben werden

Version vom 6. Januar 2022, 15:53 Uhr

Storage-NG

Storage-ng nutzt ceph um einen verteilten Speicher anzubieten.


storage-ng.hq.c3d2.de

Um es einfach zu machen den storage zu erreichen, kann man storage-ng.hq.c3d2.de nutzten. Er bietet verschiedene Dienste an, um das darunter liegdende Dateisystem zu erreichen.

* http
* samba
* tftp
* TODO: webdav

Es eine virtuelle Machine im HA modus die direkt auf der Storage Hardware läuft.

Konfiguration über nixos.

Tips

Der default storage pool für das cephfs ist auf mäßige Geschwindigkeit ausgelegt, nicht auf Effizienz. Um ein Verzeichnis effizient zu nutzen kann der archive pool genutzt werden:

 setfattr -n ceph.dir.layout.pool -v cephfs_archive [folder]

Siehe auch Ceph Docu

Leider beim Schreiben spürbar langsamer. Wenn es schnell gehen soll in ein normales Verzeichnis schieben und dann auf storage im screen verschieben.

CephFS

Ceph ist ein verteiltes Dateisystem über mehrere Nodes, daher spricht man auch von einem Ceph Cluster.

Eine gute Einführung über die Grundlagen und Architektur von CephFS erhält man unter [1]

Es gibt 4 verschiedenen Zugriffswege auf den Ceph-Storage

  • radosgw
  • RADOS Block Device
  • CephFS
  • librados


Dashboard

Um sich eine einfache Übersicht zu verschaffen sei auf das Ceph-Dashboard verwiesen. Mit dem Nutzer k-ot einloggen. Das Dashboard bietet eine guten Überblick über alle involvierten Server und kann einem die Hosts, OSDs, Crush-Maps, Pools und viele weitere Details mit samt Konfiguration im Browser darstellen.

Pools

Daten sind in unterschiedlichen Pools organisiert die unterschiedliche Charakteristiken besitzen.

rados lspools
ceph osd lspools
Name Funktion Hardware Replikation
vms Backing store für VMS z.Z. alle SAS und ~300 GB Platten replicated_osd (soll replicated_rule)
cephfs_data Default storage fur cephfs alle 2 TB+ Plaaten. cephfs_data (mirror 1/2)
cephfs_archive Langsamer aber effizienter backing store alle 2 TB+ Plaaten. cephfs_archive (~raid5 k=2 m=1)
cephfs_metadata Metadata cephfs SSD von allen Servern. cephfs_metadata (mirror 2/3)

Hardware Server

Alle Server des Verbundes nehmen proxmox als Betriebsystem.

Server Hardware Services Bemerkungen
server3.hq.c3d2.de osd, mon, mds Default für storage VM
server4.hq.c3d2.de osd, mon
server5.hq.c3d2.de osd, mon, mds

Konten für Clients

Die Dokumentation zu Red Hat Ceph Storage ist eine gute Dokumentation für die Verwaltung von Konten (und ihren Berechtigungen) für Ceph.

Für die Verwendung - also auch den Zugriff - auf den Speicher (mit Ceph) braucht es einen Schlüsselbund.

(Anmelden auf einem Gerät, wo der Speicher (mit Ceph) liegt)

ssh root@

Erstellen von einem Schlüsselbund (für Ceph) für ein Konto mit einer beispielhaften Bezeichnung fnord

ceph-authtool --create-keyring /etc/ceph/ceph.client.fnord.keyring --gen-key -n client.fnord

Ändern der Berechtigung für das beispielhafte Konto fnord

beispielhafte, aber zweckmäßige, Berechtigungen für das Lesen und Schreiben im Pool (für Ceph) cpool_data (dem Speicher (für Ceph) vom C3D2)
ceph-authtool -n client.fnord --cap mds 'allow' --cap osd 'allow rw pool=cpool_data' --cap mon 'allow r' /etc/ceph/ceph.client.fnord.keyring

Importieren vom Schlüsselbund (für Ceph) für das beispielhafte Konto fnord

ceph auth import -i /etc/ceph/ceph.client.fnord.keyring

Wir können uns in dem wir folgendes eingeben

Anzeigen der Informationen für das Authentifizieren vom Client (für Ceph) für das beispielhafte Konto fnord

… um sich vom Erfolg der Einrichtung zu überzeugen
… samt dem geheimen Schlüssel
… samt den Berechtigungen
ceph auth get client.fnord
[client.fnord]
        key = XXXXXXXXXXXXXXXXXXXXX
        caps mds = "allow"
        caps mon = "allow r"
        caps osd = "allow rw pool=cpool_data"


Das secret sollte in eine Datei geschrieben werden und auf den Client verschoben werden

   ceph auth print-key client.fnord > /path/to/secret-file

Nun kann der Storage gemounted werden (Dafür muss man sich im Netz des C3D2 befinden):

   mount.ceph  172.20.77.5,172.20.77.6,172.20.77.8:/ /mnt/hq/ceph -o name=fnord,secretfile=/path/to/secret-file

Einhängen vom CephFS

Folgende Optionen für das Einhängen zu setzen:

    172.22.99.13:6789,172.22.99.15:6789,172.22.99.16:6789:/ on /mnt/pve/cephfs type ceph (rw,relatime,name=admin,secret=<hidden>,acl,wsize=16777216,_netdev)
    172.22.99.13:6789,172.22.99.15:6789,172.22.99.16:6789:/ on /mnt/pve/cephfs-backups type ceph (rw,relatime,name=admin,secret=<hidden>,acl,wsize=16777216,_netdev)
    172.22.99.13:6789,172.22.99.15:6789,172.22.99.16:6789:/ on /mnt/pve/cephfs-iso type ceph (rw,relatime,name=admin,secret=<hidden>,acl,wsize=16777216,_netdev)