Test raida na PowerEdgu

Poweredge 710 w mojej wersji ma cztery klasyczne dyski po 450 gigabajtów każdy. Jako, że nie planuję używać go jako serwera plików, rozkład partycji zaplanowałem w taki sposób:

  • /dev/sda1 – boot
  • /dev/sda5 – /
  • /dev/sda6 – home
  • /dev/sdb1 – /var
  • /dev/sdb2 – /mnt/smietki

Co zostawia mnie z dwoma dyskami, na których będą się rodziły eksperymenty, oparte między innymi na TensorFlow, który zaczyna coraz bardziej mi się podobać. Dwa dyski dają już małe pole manewru z macierzą: RAID0 dający prędkość oraz RAID1 dający bezpieczeństwo danych. Bezpieczeństwem zajmie się mój zdalny serwer, więc sprawdźmy jaką prędkość możemy uzyskać.

Zacznę od utworzenia dwóch partycji: /dev/sdc1 oraz /dev/sdd1. Format nie jest bardzo istotny. Istotne za to jest, żeby miały dokładnie tę samą pojemność, więc w obydwu przypadkach pozostawiłem kilka wolnych megabajtów na końcu dysku. Dlaczego? Dyski, nawet tego samego  producenta, mogą się bardzo nieznacznie różnić ilością sektorów, ale z pewnością nie jest to więcej niż 1 megabajt. Potem wyczarujemy macierz dyskową:

mdadm -C /dev/md0 -l raid0 -n 2 /dev/sdc1 /dev/sdd1

Po kolei:

  • -C to create, po którym mamy nazwę nowego urządzenia jako plik w /dev,
  • -l to typ raida, w tym przypadku raid0 dzielący dane na dostępne partycje,
  • -n oznacza ilość partycji, jakie mamy do dyspozycji (u mnie są dwie),
  • na koniec wpisujemy partycje, które chcemy poświęcić na macierz.

Mamy już nasz plik /dev/md0, ale do macierzy pozostało jeszcze kilka komend. Przede wszystkim musimy sprawić, żeby zmiany przetrwały ponowne uruchomienie maszyny:

mdadm --detail --scan --verbose > /etc/mdadm.conf

sformatować md0:

mkfs -t ext4 /dev/md0

oraz umożliwić jej wygodne montowanie, dopisując nową linijkę do /etc/fstab:

# macierz raid0
/dev/md0 /mnt/labolatorium ext4 defaults 0 2

Pozostało utworzenie katalogu zwanego punktem montowania oraz katalogu do zapisu moich rzeczy:

mkdir /mnt/labolatorium
mount /mnt/labolatorium
mkdir /mnt/labolatorium/piwnica
chown -R lukasz:lukasz /mnt/labolatorium/piwnica

Mamy już naszego raida, ale jak sprawdzić, czy cokolwiek daje? Z pomocą przychodzi nam dd oraz /dev/zero, dzięki którym utworzymy plik zawierający bardzo, bardzo dużo zer:

sudo dd if=/dev/zero of=/var/pamietnik.img bs=1024k count=256k
.262144+0 records in
262144+0 records out
274877906944 bytes (275 GB) copied, 1452.91 s, 189 MB/s

A teraz to samo na naszej macierzy:

sudo dd if=/dev/zero of=/mnt/labolatorium/piwnica/pamietnik.img bs=1024k count=256k
262144+0 records in
262144+0 records out
274877906944 bytes (275 GB) copied, 756.533 s, 363 MB/s

Nie jest to może zawrotna prędkość, biorąc pod uwagę możliwości dysków SSD, ale nie wydając ani złotówki prawie podwoiłem prędkość zapisu. Mi pasuje. Teraz możecie zwrócić uwagę, że PowerEdge ma sprzętowy RAID, który potencjalnie mógłby dawać lepsze wyniki. Ano ma, ale w przypadku padu serwera (o ile nie kupię tego samego) stracę te dane. Macierz programową utworzoną przez mdadm mogę odtworzyć na jakimkolwiek innym sprzęcie.