Raspberry Pi, piyasaya sürüldüğü ilk günden bu yana Linux işletim sisteminin sağladığı esneklik, düşük elektrik tüketimi ve taşınabilirlik gibi nedenlerden ötürü başta otomasyon süreçleri olmak üzere birçok proje için temel yapı taşı haline geldi. Mütevazı bir NAS cihazı olarak kullanmak veya ownCloud ile birlikte kendi cloud dosya paylaşım platformunuzu oluşturmak bunlara güzel birer örnek. Bu örneklerde olduğu gibi verilerinizi Raspberry Pi ile depolayıp paylaşırken göz ardı etmemeniz gereken bir başka unsur da verilerinizin sürekli erişilebilir olması. Büyük yapılarda daima temel prensiplerden biri olan Availability kavramını yapıyı her ne kadar küçültsek de mümkün olduğunda uygulanabilir kılmakta fayda var.
Ben de Raspberry Pi üzerine taktığım USB sürücüleri RAID yapısına dahil ederek verilerimin mümkün oldukça erişilebilir olmasını sağlayacağım. Uygulayacağımız RAID yapılandırması yazılım tabanlı olacağı için RAID yapısına dahil edeceğimiz depolama alanına işletim sistemi kuramayız. Fakat verilerimizi depolamak için ideal bir volume elde edebiliriz.
Hatırlatmakta fayda var: RAID nedir?
RAID, Redundant Array of Independent Disks yani Yedekli Bağımsız Diskler Dizisi anlamına gelir. Genellikle RAID0, RAID1 ve RAID5 gibi sık kullanılan türlerine denk gelebilirsiniz. RAID yapılandırması genel olarak daha fazla hız, alan veya yedeklilik amacıyla uygulanır. RAID türlerini birbirinden ayıran da bu temel amaç farklılıklarıdır. Benim amacım bir disk arızalandığında diğer disk üzerinden çalışmaya devam etmek olduğu için bu örnekte USB diskleri RAID1(mirror) yapılandırması ile kullanacağım.
Neler kullandım?
Raspberry Pi Type B
Rasbian OS için 8GB SD card
Depolama aygıtı olarak 2x 16GB Kingston USB bellek
Yapılandırma adımları
Aşağıda görebileceğiniz üzere Raspberry Pi, Rasbian işletim sistemi kurulu şekilde kullanıma hazır. SSH ile bağlantı yaptıktan sonra işlemlere başlayabiliriz.
Öncelikle aşağıdaki komut ile güncellemeleri yükleyelim.
Sudo apt-get update -y
USB depolama cihazlarını listeleyerek başlayalım.
lsblk komutunu yazarak depolama cihazlarını listeleyebilirsiniz.
sda ve sdb benim RAID yapısına dahil etmek istediğim USB disklerim. Mmcblk0 ise işletim sisteminin kurulu olduğu SD card.
Sda ve sdb usb disklerine sırayla aşağıdaki gibi fdisk komutunu çalıştırın. fdisk komutunu çalıştırdığınızda interaktif bir komut yapılandırma dizisi ile karşılaşacaksınız.
Sizden komut girmenizi istediğinde ilk olarak “o” komutunu girin. Bu sayede boş bir DOS partition oluşturacaktır.
Sonrasında yeni bir partition oluşturmak için “n” komutunu giriniz. Partition number ve devamındaki seçeneklere varsayılan değerleri girebilir veya enter tuşuna basarak devam edebilirsiniz. Ekrana tekrar command (m for help): geldiğinde “w” komutunu girerek yaptığınız işlemleri kaydederek tamamlayabilirsiniz.
Hatırlatmakta fayda var: bu işlemi hem sda hem de sdb disk sürücüsü için gerçekleştirmelisiniz.
Diskinizde yer alan herhangi bir veri veya metadata gibi kalıntılardan dolayı vfat uyarısını alabilirsiniz. Dilerseniz aklınızda soru işareti kalmaması için diskleri kontrol ettikten sonra işlemlere tekrar başlayabilirsiniz fakat devam ettiğiniz taktirde zaten bu veri kalıntıları kaldırılacaktır.
Disk yapılandırmaları tamamlandıktan sonra Sudo apt-get install mdadm -y komutu ile yazılım tabanlı RAID controller kurulumunu gerçekleştireceğiz.
Mdadm adlı RAID controller kurulduktan sonra aşağıdaki komut ile sda1 ve sda2 isimli partition’ları oluşturacağımız RAID1(mirror) yapısına dahil edeceğiz.
sudo mdadm –create /dev/md0 –level=mirror –raid-devices=2 /dev/sda1 /dev/sdb1
Daha sonra bir mount point oluşturarak devam edeceğiz. raid yerine farklı bir isimlendirme de yapabilirsiniz.
sudo mkdir -p /mnt/raid
RAID volume’ü formatlıyoruz.
sudo mkfs.ext4 /dev/md0
Son olarak daha önce oluşturduğumuz raid isimli mount point’e mount ediyoruz.
Sudo mount /dev/md0 /mnt/raid
Ayrıca startup’da volume’ün mount edilmiş olarak gelmesi ve mdadm yapılandırmasını güncellemek için aşağıdaki komutları giriyoruz.
echo “/dev/md0 /mnt/raid/ ext4 defaults,noatime 0 1” | sudo tee -a /etc/fstab
sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf
lsblk komutunu tekrar kullanarak depolama birimlerini gözden geçirdiğimizde sda1 ve sdb1’in raid1 yapılandırmasına dahil olduğunu ve /mnt/raid noktasına mount edildiğini görebiliyoruz.
Sonuç olarak RAID1 yapısına dahil toplam 16GB’lık bir veri depolama birimi elde etmiş olduk. Artık owncloud veya farklı bir uygulamayı kurduktan sonra konumlandıracağımız verilerimiz daha erişilebilir olacak.