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:
- 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.
- Ç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.
- 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
ShellScriptRAID Array Oluşturma
Sistemimizde kaç tane disk olduğunu görmek için lsblk
komutunu kullanabiliriz:
lsblk
ShellScriptelimizde 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
ShellScriptBir 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}
ShellScriptBu 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>
ShellScriptArdı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
ShellScriptDosya 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
ShellScriptRAID 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
ShellScriptBu, /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
ShellScriptRAID 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
ShellScriptBu, 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
ShellScriptBu, 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
ShellScriptBu 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
ShellScriptBu, 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.