GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie einen Ceph Storage Cluster unter Ubuntu 16.04

Ceph ist eine Open-Source-Speicherplattform, die hohe Leistung, Zuverlässigkeit und Skalierbarkeit bietet. Es ist ein kostenloses verteiltes Speichersystem, das eine Schnittstelle für die Speicherung auf Objekt-, Block- und Dateiebene bietet und ohne einen einzigen Fehlerpunkt betrieben werden kann.

In diesem Tutorial werde ich Sie bei der Installation und Erstellung eines Ceph-Clusters auf einem Ubuntu 16.04-Server anleiten. Ein Ceph-Cluster besteht aus diesen Komponenten:

  • Ceph-OSDs (ceph-osd) - Behandelt die Datenspeicherung, Datenreplikation und Wiederherstellung. Ein Ceph Cluster benötigt mindestens zwei Ceph OSD Server. Wir werden in diesem Setup drei Ubuntu 16.04-Server verwenden.
  • Ceph-Monitor (ceph-mon) - Überwacht den Clusterstatus und führt die OSD-Map und die CRUSH-Map aus. Wir werden hier einen Server verwenden.
  • Ceph-Metadatenserver (ceph-mds) - Dies wird benötigt, wenn Sie Ceph als Dateisystem verwenden möchten.

Voraussetzungen

  • 6 Serverknoten mit installiertem Ubuntu 16.04-Server
  • Root-Rechte auf allen Knoten

Ich werde das folgende Hostname/IP-Setup verwenden:

Hostname IP-Adresse

ceph-admin 10.0.15.10
MON1 10.0.15.11
OSD1 10.0.15.21
OSD2 10.0.15.22
OSD3 10.0.15.23
client                 10.0.15.15

Schritt 1 – Alle Knoten konfigurieren

In diesem Schritt konfigurieren wir alle 6 Knoten, um sie für die Installation der Ceph Cluster-Software vorzubereiten. Sie müssen also die folgenden Befehle auf allen Knoten befolgen und ausführen. Und stellen Sie sicher, dass ssh-server auf allen Knoten installiert ist.

Erstellen Sie den Ceph-Benutzer

Erstellen Sie einen neuen Benutzer namens "cephuser". ' auf allen Knoten.

useradd -m -s /bin/bash cephuser
passwd cephuser

Nach dem Erstellen des neuen Benutzers müssen wir cephuser konfigurieren für passwortlose sudo-Privilegien. Das bedeutet, dass 'cephuser' ausgeführt werden kann und sudo-Privilegien erhält, ohne zuerst ein Passwort eingeben zu müssen.

Führen Sie die folgenden Befehle aus, um dies zu erreichen.

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

NTP installieren und konfigurieren

Installieren Sie NTP, um Datum und Uhrzeit auf allen Knoten zu synchronisieren. Führen Sie den Befehl ntpdate aus, um Datum und Uhrzeit über NTP festzulegen. Wir werden die NTP-Server des US-Pools verwenden. Starten Sie dann den NTP-Server und aktivieren Sie ihn, damit er beim Booten ausgeführt wird.

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

Installieren Sie Open-VM-Tools

Wenn Sie alle Knoten innerhalb von VMware ausführen, müssen Sie dieses Virtualisierungsdienstprogramm installieren.

sudo apt-get install -y open-vm-tools

Python installieren und trennen

In diesem Tutorial benötigen wir Python-Pakete zum Erstellen des Ceph-Clusters. Installieren Sie python und python-pip.

sudo apt-get install -y python python-pip parted

Konfigurieren Sie die Hosts-Datei

Bearbeiten Sie die Hosts-Datei auf allen Knoten mit dem vim-Editor.

vim /etc/hosts

Fügen Sie die Konfiguration unten ein:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        ceph-osd1
10.0.15.22        ceph-osd2
10.0.15.23        ceph-osd3
10.0.15.15        ceph-client

Speichern Sie die Hosts-Datei und beenden Sie den vim-Editor.

Jetzt können Sie versuchen, zwischen den Server-Hostnamen zu pingen, um die Netzwerkverbindung zu testen.

ping -c 5 mon1

Schritt 2 – SSH-Server konfigurieren

In diesem Schritt konfigurieren wir den ceph-admin-Knoten . Der Admin-Knoten wird zum Konfigurieren des Monitor-Knotens und der OSD-Knoten verwendet. Melden Sie sich beim ceph-admin-Knoten an und greifen Sie auf die Datei „cephuser '.

ssh [email protected]
su - cephuser

Der Admin-Knoten wird zum Installieren und Konfigurieren aller Cluster-Knoten verwendet, daher muss der Benutzer auf dem ceph-admin-Knoten die Berechtigung haben, sich ohne Kennwort mit allen Knoten zu verbinden. Wir müssen den kennwortlosen SSH-Zugriff für „cephuser“ auf dem Knoten „ceph-admin“ konfigurieren.

Generieren Sie die SSH-Schlüssel für „cephuser“. '.

ssh-keygen

Lassen Sie die Passphrase leer/leer.

Erstellen Sie als Nächstes eine Konfigurationsdatei für die SSH-Konfiguration.

vim ~/.ssh/config

Fügen Sie die Konfiguration unten ein:

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host ceph-osd1
        Hostname ceph-osd1
        User cephuser

Host ceph-osd2
        Hostname ceph-osd2
        User cephuser

Host ceph-osd3
        Hostname ceph-osd3
        User cephuser

Host ceph-client
        Hostname ceph-client
        User cephuser

Speichern Sie die Datei und beenden Sie vim.

Ändern Sie die Berechtigung der Konfigurationsdatei auf 644.

chmod 644 ~/.ssh/config

Fügen Sie nun den Schlüssel mit dem Befehl ssh-copy-id zu allen Knoten hinzu.

ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1

Geben Sie Ihr Cepuser-Passwort ein, wenn Sie dazu aufgefordert werden.

Versuchen Sie nun, vom ceph-admin-Knoten aus auf den osd1-Server zuzugreifen, um zu testen, ob die passwortlose Anmeldung funktioniert.

ssh ceph-osd1

Schritt 3 – Konfigurieren Sie die Ubuntu-Firewall

Aus Sicherheitsgründen müssen wir die Firewall auf den Servern einschalten. Vorzugsweise verwenden wir Ufw (Uncomplicated Firewall), die Standard-Firewall von Ubuntu, um das System zu schützen. In diesem Schritt aktivieren wir ufw auf allen Knoten und öffnen dann die Ports, die von ceph-admin, ceph-mon und ceph-osd benötigt werden.

Melden Sie sich beim ceph-admin-Knoten an und installieren Sie die ufw-Pakete.

ssh [email protected]
sudo apt-get install -y ufw

Port 80, 2003 und 4505-4506 öffnen, dann Firewalld neu laden.

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp

Starten und aktivieren Sie ufw, um beim Booten zu starten.

sudo ufw enable

Melden Sie sich vom ceph-admin-Knoten aus beim Monitor-Knoten „mon1“ an und installieren Sie ufw.

ssh mon1
sudo apt-get install -y ufw

Öffnen Sie die Ports für den Ceph-Monitorknoten und starten Sie ufw.

sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable

Öffnen Sie schließlich diese Ports auf jedem OSD-Knoten:ceph-osd1, ceph-osd2 und ceph-osd3 – Port 6800-7300.

Melden Sie sich über ceph-admin bei jedem der ceph-osd-Knoten an und installieren Sie ufw.

ssh ceph-osd1
sudo apt-get install -y ufw

Öffnen Sie die Ports auf den OSD-Knoten und laden Sie firewalld neu.

sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable

Die Konfiguration der ufw-Firewall ist abgeschlossen.

Schritt 4 – Konfigurieren Sie die Ceph OSD-Knoten

In diesem Tutorial haben wir 3 OSD-Knoten, jeder dieser Knoten hat zwei Festplattenpartitionen.

  1. /dev/sda für Root-Partition
  2. /dev/sdb ist eine leere Partition - 20 GB

Wir werden /dev/sdb verwenden für die Ceph-Disk. Melden Sie sich vom ceph-admin-Knoten aus bei allen OSD-Knoten an und formatieren Sie die /dev/sdb-Partition mit XFS Dateisystem.

ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3

Überprüfen Sie das Partitionsschema mit dem Befehl fdisk.

sudo fdisk -l /dev/sdb

Formatieren Sie die /dev/sdb-Partition mit einem XFS-Dateisystem und mit einer GPT-Partitionstabelle, indem Sie den parted-Befehl verwenden.

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%

Als nächstes formatieren Sie die Partition im XFS-Format mit dem mkfs-Befehl.

sudo mkfs.xfs -f /dev/sdb

Überprüfen Sie nun die Partition und Sie sehen eine XFS /dev/sdb-Partition.

sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb

Schritt 5 – Erstellen Sie den Ceph-Cluster

In diesem Schritt installieren wir Ceph auf allen Knoten von ceph-admin. Melden Sie sich zunächst beim ceph-admin-Knoten an.

ssh [email protected]
su - cephuser

Installieren Sie ceph-deploy auf dem ceph-admin-Knoten

Im ersten Schritt haben wir bereits python und python-pip auf dem System installiert. Jetzt müssen wir das Ceph Deployment Tool 'ceph-deploy installieren ' aus dem pypi-Python-Repository.

Installieren Sie ceph-deploy auf dem ceph-admin-Knoten mit dem pip-Befehl.

sudo pip install ceph-deploy

Hinweis:Stellen Sie sicher, dass alle Knoten aktualisiert werden.

Nachdem das ceph-deploy-Tool installiert wurde, erstellen Sie ein neues Verzeichnis für die Ceph-Cluster-Konfiguration.

Neuen Cluster erstellen

Erstellen Sie ein neues Cluster-Verzeichnis.

mkdir cluster
cd cluster/

Erstellen Sie als Nächstes einen neuen Cluster mit der Datei „ceph-deploy ', indem Sie den Monitorknoten 'mon1 definieren '.

ceph-deploy new mon1

Der Befehl generiert die Ceph-Cluster-Konfigurationsdatei „ceph.conf“ im Cluster-Verzeichnis.

Bearbeiten Sie die Datei ceph.conf mit vim.

vim ceph.conf

Fügen Sie unter dem Block [global] die folgende Konfiguration ein.

# Your network address
public network = 10.0.15.0/24
osd pool default size = 2

Speichern Sie die Datei und beenden Sie den Editor.

Installieren Sie Ceph auf allen Knoten

Installieren Sie jetzt Ceph auf allen Knoten vom Knoten ceph-admin mit einem einzigen Befehl.

ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1

Der Befehl installiert Ceph automatisch auf allen Knoten:mon1, osd1-3 und ceph-admin - Die Installation wird einige Zeit dauern.

Stellen Sie jetzt den Überwachungsknoten auf dem Mon1-Knoten bereit.

ceph-deploy mon create-initial

Der Befehl erstellt einen Überwachungsschlüssel, überprüfen Sie den Schlüssel mit diesem ceph-Befehl.

ceph-deploy gatherkeys mon1

OSDS zum Cluster hinzufügen

Nachdem Ceph auf allen Knoten installiert wurde, können wir nun die OSD-Daemons zum Cluster hinzufügen. OSD-Daemons erstellen die Daten- und Journalpartition auf der Festplatte /dev/sdb.

Überprüfen Sie die verfügbare Festplatte /dev/sdb auf allen OSD-Knoten.

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

Sie sehen /dev/sdb mit dem zuvor erstellten XFS-Format.

Als nächstes löschen Sie die Partitionstabellen auf allen Knoten mit der Option zap.

ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

Der Befehl löscht alle Daten auf /dev/sdb auf den Ceph OSD-Knoten.

Bereiten Sie nun alle OSD-Knoten vor und stellen Sie sicher, dass die Ergebnisse fehlerfrei sind.

ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

Wenn Sie im Ergebnis sehen, dass ceph-osd1-3 bereit für die OSD-Nutzung ist, war der Befehl erfolgreich.

Aktivieren Sie die OSDs mit dem folgenden Befehl:

ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

Jetzt können Sie die SDB-Festplatte auf OSDS-Knoten erneut überprüfen.

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

Das Ergebnis ist, dass /dev/sdb jetzt zwei Partitionen hat:

  1. /dev/sdb1 - Ceph-Daten
  2. /dev/sdb2 - Ceph-Journal

Oder Sie überprüfen es direkt auf dem OSD-Knoten.

ssh ceph-osd1
sudo fdisk -l /dev/sdb

Stellen Sie als Nächstes den Verwaltungsschlüssel für alle zugeordneten Knoten bereit.

ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3

Ändern Sie die Berechtigung der Schlüsseldatei, indem Sie den folgenden Befehl auf allen Knoten ausführen.

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Der Ceph Cluster auf Ubuntu 16.04 wurde erstellt.

Schritt 6 – Testen von Ceph

In Schritt 4 haben wir einen neuen Ceph-Cluster installiert und erstellt und dem Cluster OSDS-Knoten hinzugefügt. Jetzt sollten wir den Cluster testen, um sicherzustellen, dass er wie beabsichtigt funktioniert.

Melden Sie sich vom ceph-admin-Knoten beim Ceph-Überwachungsserver „mon1“ an '.

ssh mon1

Führen Sie den folgenden Befehl aus, um den Zustand des Clusters zu prüfen.

sudo ceph health

Überprüfen Sie nun den Clusterstatus.

sudo ceph -s

Sie können die Ergebnisse unten sehen:

Stellen Sie sicher, dass der Ceph-Zustand OK ist und es gibt einen Überwachungsknoten 'mon1 ' mit der IP-Adresse '10.0.15.11 '. Es gibt 3 OSD Server und alle sind in Betrieb und läuft, und es sollte ein verfügbarer Speicherplatz von 45 GB vorhanden sein - 3 x 15 GB Ceph Data OSD-Partition.

Wir bauen erfolgreich einen neuen Ceph Cluster auf Ubuntu 16.04.


Ubuntu
  1. So installieren Sie Odoo auf Ubuntu

  2. So installieren Sie den MariaDB Galera-Cluster unter Ubuntu 16.04

  3. So erstellen Sie einen Ceph-Speichercluster unter Ubuntu 16.04

  4. So installieren Sie R unter Ubuntu 16.04

  5. So installieren Sie Go unter Ubuntu 18.04

So installieren Sie R unter Ubuntu 18.04

So installieren Sie einen MySQL-Cluster unter Ubuntu 16.04

So installieren Sie qt unter Ubuntu 20.04

So installieren Sie minio S3 Object Storage auf Ubuntu 21.04

So installieren Sie Go in Ubuntu 20.04

So installieren Sie Go unter Ubuntu 22.04