Sme tím profesionálov

Naspäť na novinky

Ako pripraviť vývojové alebo testovacie Ceph prostredie

Keď používate Ceph v produkcii, je dôležité mať prostredie, kde môžete testovať svoje budúce upgrady, konfiguračné zmeny, integráciu nových klastrov alebo akékoľvek iné významné zmeny bez toho, aby ste sa dotkli samotných produkčných klastrov. Takéto prostredie je možné vybudovať pomocou nástroja Vagrant, ktorý dokáže veľmi rýchlo vybudovať virtualizované prostredie popísané v jednom relatívne jednoduchom konfiguračnom súbore.

V Linuxe používame Vagrant s doplnkami libvirt a hostmanager. Libvirt je súprava nástrojov na správu virtuálnych počítačov Linux KVM. Vagrant môže tiež vytvárať virtualizované siete na prepojenie týchto VMs a úložných zariadení, takže v prípade potreby môžete mať takmer identickú kópiu svojho produkčného klastra.

V našom príklade vytvoríme 5 uzlov Ceph klastra. Prvé 3 uzly budú vyhradené pre daemons riadiacich uzlov, všetky uzly budú tiež OSD uzly (štandardne 2 x 10 GB disky na každom uzle) a jeden uzol bude klientsky uzol. Klientske uzly možno použiť na testovanie prístupu ku klastrovým službám ako sú mapovanie obrazov rbd, pripojenie súborových systémov CephFS, prístup k RGW bucketom alebo čokoľvek, čo sa vám páči. Hostiteľským strojom, na ktorom beží virtualizované prostredie, môže byť akýkoľvek stroj s Linuxom (v našom prípade Ubuntu 22.04) s povolenou virtualizáciou KVM.

user@hostmachine:~/$ kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used

Nainštalujte požadované balíčky:

sudo apt-get install qemu libvirt-daemon-system libvirt-clients ebtables dnsmasq-base
sudo apt-get install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev
sudo apt-get install libguestfs-tools
sudo apt-get install build-essential

Nainštalujte Vagrant podľa krokov na oficiálnej inštaláčnej stránke: https://developer.hashicorp.com/vagrant/downloads
Potom musíme nainštalovať Vagran pluginy:

vagrant plugin install vagrant-libvirt vagrant-hostmanager 

Ak v ~/.ssh nie je žiadny pár kľúčov ssh, vygenerujte ho. Tento pár kľúčov sa vloží do VMs, pretože cephadm, ktorý použijeme na nasadenie Ceph, potrebuje konektivitu ssh medzi VMs a tento pár kľúčov sa použije na autentifikáciu ssh medzi uzlami.

ssh-keygen

Teraz by sme mali byť pripravení spustiť vaše virtuálne prostredie.

mkdir ceph-vagrant; cd ceph-vagrant
wget https://gist.githubusercontent.com/kmadac/171a5b84a6b64700f163c716f5028f90/raw/1cd844197c3b765571e77c58c98759db77db7a75/Vagrantfile

vagrant up

Keď vagrant up skončí bez chyby, Ceph bude inštalovaný na pozadí ešte niekoľko minút. Priebeh nasadenia môžete skontrolovať prístupom k ceph shell na node0:

vagrant ssh vagrant ssh ceph1-node0
vagrant@ceph1-node0:~$ sudo cephadm shell
root@ceph1-node0:/# ceph -W cephadm –watch-debug

Na konci by ste mali získať zdravý Ceph cluster s 3 deamonmi MON a 6 deamonmi OSD:

root@ceph1-node0:/# ceph -s
  cluster:
    id:     774c4454-7d1e-11ed-91a2-279e3b86d070
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph1-node0,ceph1-node1,ceph1-node2 (age 13m)
    mgr: ceph1-node0.yxrsrj(active, since 21m), standbys: ceph1-node1.oqrkhf
    osd: 6 osds: 6 up (since 12m), 6 in (since 13m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   33 MiB used, 60 GiB / 60 GiB avail
    pgs:     1 active+clean

Teraz je váš klaster v prevádzke a môžete nainštalovať ďalšie služby ako CephFS alebo RGW, môžete sa hrať s pridávaním/odstraňovaním uzlov a aktualizáciou na ďalšiu verziu. Zmenou premennej CLUSTER_ID v súbore Vagrantfile a skopírovaním súboru Vagrantfile do iného adresára môžete nasadiť druhý klaster a pokúsiť sa nastaviť replikáciu (rbd-mirror, cephfs-mirror, konfigurácia viacerých zón RGW) medzi klastrami. Fantázií sa medze nekladú.

Keď skončíte s testami, môžete vaše prostredie jednoducho zničiť pomocou

vagrant destroy -f

Autor

Kamil Madáč
Grow2FIT Modren Infrastructure Consultant

Kamil je Senior Cloud / Infrastructure konzultant s viac ako 20-ročnou praxou a silným know-how v oblasti návrhu, implementácie a administrácie private cloud riešení (primárne postavenými nad OpenSource riešeniami ako OpenStack). Má dlhoročné skúsenosti s vývojom aplikácií v Pythone a aktuálne aj s vývojom v Go. Disponuje silným know-how v oblasti SDS (Software-defined storages), SDN (Software-defined networking), dátových úložísk (Ceph, NetApp), administrácie Linux serverov a prevádzky nasadených riešení.
Kamil je pravidelný prispievateľ do OpenSource projektov (OpenStack, Kuryr, Requests Lib – Python).

Celý konzultačný tím Grow2FIT: Náš tím

Súvisiace služby