Pazar, Aralık 22, 2024

Linux’te Software RAID Nasıl Yapılır?

yüksek çözünürlüklü linux görseli

RAID (açılımı Redundant Array of Inexpensive Disks), farklı disklerdeki birden fazla bölümü RAID dizisi olarak da bilinen büyük bir sanal aygıtta birleştirmek için kullanılan bir yöntemdir. Bunun çeşitli avantajları vardır:

  1. Her birini farklı bir bağlama noktası dizinine ayrı ayrı bağlamak yerine, mevcut tüm sabit diskleriniz kadar büyük tek bir dosya sistemi oluşturabilirsiniz.
  2. Çoğu durumda, bir RAID cihazından okuma ve yazma tek bir diske erişmekten daha hızlıdır, çünkü okunan veya yazılan veriler birden fazla sürücüye yayılmıştır.
  3. Doğru yapılandırmayla, bir RAID cihazındaki veriler sabit disklerden herhangi biri arızalansa bile hayatta kalabilir. Bu, yedek bilgilerin tüm sürücülere yayılmasıyla gerçekleştirilir ve bir miktar disk alanı pahasına yapılır.

Linux’ta, RAID dizileri için çeşitli seçenekler vardır. Bu bölümde, Linux’ta yazılım RAID’ı nasıl yapılandıracağınızı ve yöneteceğinizi göstereceğim.

Yazılım RAID’ı için Gereksinimler

Linux’ta yazılım RAID’ı oluşturmak için, Linux çekirdeğinin RAID desteğini etkinleştirmeniz gerekir. Bu, çoğu Linux işletim sisteminde desteklendiği anlamını taşır. Ayrıca, RAID dizilerini oluşturmak için kullanacağınız araçları da yüklemeniz gerekebilir. Bu araçlar, çoğu Linux dağıtımında mdadm paketi altında bulunur.

Debian tabanlı bir sistemde, mdadm paketini şu komutla yükleyebilirsiniz:

sudo apt install mdadm
ShellScript

RAID Array Oluşturma

Sistemimizde kaç tane disk olduğunu görmek için lsblk komutunu kullanabiliriz:

lsblk
ShellScript

elimizde raid yapabileceğimiz 3 adet 1TB boyutunda disk gözüküyor bunları raid yapmak için kullanacağız.

root@mail:/# lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
NAME     SIZE FSTYPE            TYPE  MOUNTPOINT
loop1   73.9M                   loop  /snap/core22/864
loop2  152.1M                   loop  /snap/lxd/26200
loop3   49.8M                   loop  /snap/snapd/18596
loop4  152.1M                   loop  /snap/lxd/26093
loop5   40.9M                   loop  /snap/snapd/20290
loop6   74.1M                   loop  /snap/core22/1033
sda    931.5G                   disk
sdb    111.8G                   disk
├─sdb1     1M                   part
└─sdb2 111.8G ext4              part  /
sdc    931.5G                   disk
sdd    931.5G                   disk
ShellScript

Bir array oluşturmak için kullanılan aygıtları bulduktan sonra, RAID kurulumu için meta verileri tutan süper
bloklarını sıfırlamalıyız yoksa inode hataları ile karşılaşırız çünkü raid ile diski genişletmiş olacağız.

Bunu sıfırlamak RAID meta verilerini kaldırır ve normale sıfırlar:

sudo mdadm --zero-superblock /dev/sd{a,c,d}
ShellScript

Şimdi, RAID dizisini oluşturmak için mdadm komutunu kullanabiliriz.

sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sd{a,c,d}
ShellScript

Bu komut, RAID dizisini oluşturur ve /dev/md0 adlı bir aygıt dosyası oluşturur. Bu aygıt dosyası, RAID dizisine erişmek için kullanacağımız şeydir. Bu komut ayrıca, RAID dizisinin RAID 0 olarak yapılandırılacağını ve üç diskten oluşacağını belirtir.

root@mail:/# cat /proc/mdstat
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sda[2] sdd[1] sdc[0]
      2929890816 blocks super 1.2 512k chunks

unused devices: <none>
ShellScript

Ardından oluşturduğumuz RAID dizisini bir dosya sistemiyle biçimlendirmemiz gerekir. Bu, RAID dizisini kullanmaya başlamadan önce yapılması gereken bir adımdır.

sudo mkfs.ext4 -F /dev/md0
ShellScript

Dosya sistemi oluşturulduktan sonra, RAID dizisini bir dizine bağlayabiliriz. Bu dizin, RAID dizisine erişmek için kullanacağımız şeydir.

sudo mkdir -p /mnt/data
sudo mount /dev/md0 /mnt/data
ShellScript

RAID Düzenini Kayıt Altına Alma

RAID dizisini oluşturduktan sonra, RAID düzenini kayıt altına almak için mdadm komutunu kullanabiliriz.

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ShellScript

Bu, /etc/mdadm/mdadm.conf dosyasına bir satır ekler. Bu, RAID dizisini her zaman otomatik olarak oluşturacağı anlamına gelir.

Daha sonra, initramfs ya da başlangıç RAM dosya sistemini güncelleyebilirsiniz, böylece dizi erken önyükleme işlemi sırasında kullanılabilir olacaktır:

sudo update-initramfs -u
ShellScript

RAID Array’i fstab’a eklemek

RAID dizisini oluşturduktan sonra, onu /etc/fstab dosyasına ekleyebiliriz.

/dev/md0 /mnt/data ext4 defaults,nofail,discard 0 0
ShellScript

Bu, RAID dizisini her zaman otomatik olarak mount edecektir. nofail seçeneği, RAID dizisi başlatılamazsa, sistemin yine de başlamasını sağlar. discard seçeneği, RAID dizisindeki dosyaları silerken TRIM komutunu kullanacağını belirtir.

RAID Array’e Disk Eklemek

RAID dizisine disk eklemek için, mdadm komutunu kullanabiliriz.

mdadm /dev/md0 --add /dev/sdc1
ShellScript

Bu, RAID dizisine /dev/sdc1 adlı bir disk ekler. Bu, RAID dizisini genişletir ve RAID dizisine eklenen diskteki tüm verileri siler.

RAID Dizisinden Disk Kaldırmak

RAID dizisinden disk kaldırmak için, mdadm komutunu kullanabiliriz.

mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
ShellScript

Bu komut, /dev/sda1 adlı bir disk kaldırır. Bu, RAID dizisini küçültür ve RAID dizisinden kaldırılan diske erişilemez hale getirir. Diskteki veriler silinmez ancak veriler kullanılamaz hale gelir. Bu, RAID dizisinden bir disk kaldırmak için kullanılan en güvenli yöntemdir. Ayrıca hatalı diski kaldırmak için de kullanılır.

RAID Dizisini Tamamen Kaldırmak

RAID dizisini tamamen kaldırmak için, mdadm komutunu kullanabiliriz.

mdadm --stop /dev/md0
mdadm --remove /dev/md0
ShellScript

Bu, RAID dizisini kaldırır ve RAID dizisindeki tüm verileri siler.

UYARI

mdadm’in RAID 5 dizilerini oluşturma şekli nedeniyle, dizi hala oluşturulurken, dizideki yedeklerin sayısı yanlış gözükür.

Bu, /etc/mdadm/mdadm.conf dosyasını güncellemeden önce dizinin mount’unun bitmesini beklemeniz gerektiği anlamı taşır. Dizi oluşturulmaya devam ederken yapılandırma dosyasını güncellerseniz, sistem dizinin durumu hakkında yanlış bilgiye sahip olacağı ve önyükleme sırasında diziyi doğru adla otomatik birleştiremeyeceği anlamına gelir.

RAID dizisini oluşturduktan sonra, RAID dizisini oluşturan disklerden herhangi biri arızalanırsa, RAID dizisi bozulur. Bu, RAID dizisindeki tüm verilerin kaybedilmesine neden olur. Bu nedenle, her an bir planınız olmalıdır.