Takip et

Ubuntu 18.04 Üzerinde mdadm ile RAID Dizileri Oluşturma

Ubuntu 18. 04 Üzerinde mdadm ile RAID Dizileri Oluşturma Veri depolama, modern bilgi işlem altyapılarının temel taşlarından biridir.

Ubuntu 18.04 Üzerinde mdadm ile RAID Dizileri Oluşturma

Veri depolama, modern bilgi işlem altyapılarının temel taşlarından biridir. Veri güvenliği, erişilebilirlik ve performans, herhangi bir sunucu veya iş istasyonu için kritik öneme sahiptir. Bu ihtiyaçları karşılamak amacıyla geliştirilen teknolojilerden biri de RAID (Redundant Array of Independent Disks) dizileridir. RAID, birden fazla fiziksel diski tek bir mantıksal birim olarak birleştirerek veri yedekliliği, performans artışı veya her ikisini birden sunar. Bu makalede, Ubuntu 18.04 işletim sistemi üzerinde yazılımsal RAID dizileri oluşturmak için kullanılan mdadm aracını ayrıntılı bir şekilde inceleyeceğiz.

Yazılımsal RAID, işletim sistemi çekirdeği tarafından yönetilen ve standart CPU kaynaklarını kullanan bir çözümdür. Donanımsal RAID kartlarına kıyasla daha uygun maliyetli ve esnektir. Ubuntu 18.04, mdadm (Multiple Device Admin) aracı sayesinde yazılımsal RAID yapılandırmasını kolayca yapmamıza olanak tanır. Bu sayede, sistem yöneticileri ve ileri düzey kullanıcılar, disk arızalarına karşı dayanıklı sistemler kurabilir veya depolama performansını optimize edebilirler.

RAID Neden Kullanılmalı?

RAID, çeşitli avantajlar sunar:

* Veri Yedekliliği (Redundancy): Bazı RAID seviyeleri (RAID 1, 5, 6, 10 gibi), disk arızası durumunda veri kaybını önlemek için yedeklilik sağlar. Bir disk arızalandığında, sistem çalışmaya devam eder ve veriler kurtarılabilir.
* Performans Artışı: RAID 0 gibi seviyeler, verileri birden fazla diske dağıtarak okuma/yazma hızlarını önemli ölçüde artırabilir. RAID 10 gibi hibrit seviyeler hem performans hem de yedeklilik sunar.
* Daha Büyük Depolama Birimleri: Birden fazla küçük diski birleştirerek, tek bir büyük mantıksal depolama alanı oluşturulabilir.
* Veri Bütünlüğü: Bazı RAID seviyeleri, disk hatalarını tespit etme ve düzeltme yeteneği sayesinde veri bütünlüğünü korur.

Ön Gereksinimler

RAID dizisi oluşturmaya başlamadan önce aşağıdaki maddelerin karşılandığından emin olun:

* Ubuntu 18.04 İşletim Sistemi: Sunucu veya masaüstü sürümü fark etmeksizin, komut satırı erişimi olan bir Ubuntu 18.04 kurulumu.
* Birden Fazla Fiziksel Disk: RAID dizisi için en az iki, genellikle daha fazla, boş ve formatlanmamış fiziksel diske ihtiyacınız olacaktır. Bu diskler /dev/sdb, /dev/sdc, /dev/sdd gibi isimlerle görünebilir. Mevcut işletim sisteminizin kurulu olduğu diski kullanmamaya özen gösterin.
* Root Ayrıcalıkları: Tüm komutlar için sudo kullanma yetkisi.
* Temel Linux Komut Bilgisi: Komut satırında gezinme ve temel disk yönetimi komutlarına aşinalık.

mdadm Kurulumu

mdadm aracı, Ubuntu’da varsayılan olarak yüklü gelmeyebilir. Kurulum için aşağıdaki adımları izleyin:

Öncelikle paket listesini güncelleyin:

sudo apt update

Ardından mdadm paketini kurun:

sudo apt install mdadm

Kurulum sırasında, sistem RAID dizilerini otomatik olarak monte edip etmeyeceğinizi sorabilir. Genellikle varsayılan seçenekleri kabul etmek yeterlidir.

Kullanılabilir Diskleri Tanımlama

RAID dizisine dahil edeceğiniz diskleri doğru bir şekilde tanımlamak çok önemlidir. Yanlış diski seçmek veri kaybına yol açabilir. Sisteminizdeki diskleri listelemek için lsblk veya fdisk -l komutlarını kullanabilirsiniz:

lsblk

Bu komut, bağlı tüm blok cihazları (diskler ve bölümler) hiyerarşik bir yapıda gösterir. Boyutlarına ve mevcut bölümlerine bakarak boş diskleri tespit edebilirsiniz. Örneğin, /dev/sdb, /dev/sdc, /dev/sdd gibi diskler genellikle yeni eklenen veya kullanılmayan disklerdir.

fdisk -l

Bu komut, sistemdeki tüm diskler hakkında detaylı bilgi verir, bölüm tablolarını ve boyutlarını gösterir. Özellikle “Disk /dev/sdb: …” şeklinde başlayan ve üzerinde herhangi bir bölüm (/dev/sdb1 gibi) olmayan diskleri arayın.

Önemli: İşletim sisteminizin kurulu olduğu diski (genellikle /dev/sda) veya üzerinde önemli veriler bulunan diskleri RAID dizisine eklemeyin. Bu makaledeki örneklerde /dev/sdb, /dev/sdc, /dev/sdd ve /dev/sde disklerini kullanacağımızı varsayacağız.

Diskleri RAID İçin Hazırlama

RAID dizisi oluşturmadan önce, her bir diski RAID için uygun bir bölümleme şemasıyla hazırlamanız gerekir. Her diskte, RAID dizisine katılacak tek bir bölüm oluşturmalı ve bu bölümün tipini “Linux raid autodetect” olarak ayarlamalısınız. fdisk veya gdisk (GPT bölüm tabloları için) kullanabilirsiniz. Biz burada MBR bölüm tabloları için fdisk kullanacağız.

Aşağıdaki adımları her bir disk için tekrarlayın (örneğin /dev/sdb, /dev/sdc, /dev/sdd):

sudo fdisk /dev/sdb

fdisk komutuna girdikten sonra aşağıdaki adımları izleyin:
* n tuşuna basarak yeni bir bölüm oluşturun.
* p tuşuna basarak birincil (primary) bölüm seçin.
* 1 tuşuna basarak bölüm numarasını 1 olarak ayarlayın.
* İlk sektör ve son sektör için varsayılan değerleri (Enter tuşuna basarak) kabul edin. Bu, diskin tamamını kaplayan tek bir bölüm oluşturacaktır.
* t tuşuna basarak bölüm tipini değiştirin.
* L tuşuna basarak mevcut bölüm tiplerinin listesini görebilirsiniz. fd kodu “Linux raid autodetect” içindir. fd yazıp Enter tuşuna basın.
* p tuşuna basarak bölüm tablosunu kontrol edin. Yeni oluşturduğunuz bölümün tipinin Linux raid autodetect (kimlik fd) olduğundan emin olun.
* w tuşuna basarak değişiklikleri kaydedin ve fdisk‘ten çıkın.

Bu adımları RAID dizisine dahil etmek istediğiniz tüm diskler için tekrarlayın (örn. /dev/sdb, /dev/sdc, /dev/sdd). Her disk için /dev/sdb1, /dev/sdc1, /dev/sdd1 gibi bölümler oluşturmuş olacaksınız.

Değişikliklerin sistem tarafından tanındığından emin olmak için partprobe komutunu çalıştırabilirsiniz:

sudo partprobe

RAID Dizisi Oluşturma

Diskleri hazırladıktan sonra, mdadm --create komutunu kullanarak RAID dizisini oluşturabilirsiniz. RAID seviyesi seçimi, performans ve yedeklilik gereksinimlerinize bağlıdır.

RAID Seviyeleri ve mdadm Komutları

İşte yaygın RAID seviyeleri ve mdadm ile nasıl oluşturulacakları:

1. RAID 0 (Striping – Şeritlenme)
* Açıklama: Verileri birden fazla diske bloklar halinde dağıtır. Okuma/yazma performansı artar ancak yedeklilik sağlamaz. Bir disk arızalanırsa tüm veriler kaybolur.
* Minimum Disk Sayısı: 2
* Kullanılabilir Alan: Tüm disklerin toplam alanı.
* Örnek Komut (2 disk ile):

sudo mdadm –create /dev/md0 –level=0 –raid-devices=2 /dev/sdb1 /dev/sdc1

2. RAID 1 (Mirroring – Aynalama)
* Açıklama: Verileri eş zamanlı olarak iki veya daha fazla diske yazar. Mükemmel yedeklilik sağlar; bir disk arızalanırsa diğer diskler veriyi barındırır. Performans artışı genellikle okuma hızlarında görülür.
* Minimum Disk Sayısı: 2
* Kullanılabilir Alan: En küçük diskin boyutu (genellikle disklerden birinin boyutu).
* Örnek Komut (2 disk ile):

sudo mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1

Not: Eğer bir disk henüz bağlı değilse veya bir disk arızalıymış gibi başlatmak isterseniz missing anahtar kelimesini kullanabilirsiniz:
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing

3. RAID 5 (Striping with Parity – Pariteli Şeritlenme)
* Açıklama: Verileri ve eşlik (parity) bilgilerini tüm disklere dağıtır. Bir disk arızasına dayanabilir. Performans ve yedeklilik arasında iyi bir denge sunar. Eşlik bilgileri, arızalı bir diskin verilerini yeniden oluşturmak için kullanılır.
* Minimum Disk Sayısı: 3
Kullanılabilir Alan: (N-1) En küçük diskin boyutu (N = toplam disk sayısı).
* Örnek Komut (3 disk ile):

sudo mdadm –create /dev/md0 –level=5 –raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

4. RAID 6 (Striping with Double Parity – Çift Pariteli Şeritlenme)
* Açıklama: RAID 5’e benzer ancak iki diskin aynı anda arızalanmasına dayanabilir. Daha yüksek veri güvenliği sunar ancak RAID 5’e göre daha fazla disk alanı eşlik için ayrılır ve yazma performansı biraz daha düşüktür.
* Minimum Disk Sayısı: 4
Kullanılabilir Alan: (N-2) En küçük diskin boyutu.
* Örnek Komut (4 disk ile):

sudo mdadm –create /dev/md0 –level=6 –raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdc1 /dev/sdd1 /dev/sde1

5. RAID 10 (Nested RAID 1+0 – İç İçe RAID)
* Açıklama: RAID 1 (aynalama) ve RAID 0 (şeritlenme) kombinasyonudur. Veriler önce aynalanır, ardından aynalanmış çiftler şeritlenir. Hem yüksek performans hem de mükemmel yedeklilik sağlar. İki adede kadar disk arızasına dayanabilir (ancak aynı aynalama çiftinden olmamaları gerekir).
* Minimum Disk Sayısı: 4 (çift sayıda olmalıdır)
* Kullanılabilir Alan: Toplam disk alanının yarısı.
* Örnek Komut (4 disk ile):

sudo mdadm –create /dev/md0 –level=10 –raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

--layout=near veya --layout=far gibi parametrelerle RAID 10’un veri yerleşimini de belirtebilirsiniz. Varsayılan genellikle near‘dır.

RAID Dizisi Oluşturma Sürecini İzleme:

Bir RAID dizisi oluşturulduğunda, özellikle RAID 1, 5, 6 veya 10 gibi yedekli dizilerde, diskler arasında veri senkronizasyonu (rebuild) işlemi başlar. Bu işlem, disk boyutuna ve sistem yüküne bağlı olarak zaman alabilir. Durumu aşağıdaki komutla izleyebilirsiniz:

cat /proc/mdstat

Bu komut, /dev/md0 gibi RAID dizinizin adını, durumunu ([UU], [U_], [_U] gibi), ilerlemesini ve tahmini tamamlanma süresini gösterecektir. [UU] veya [UUUU] gibi ifadeler, tüm disklerin aktif ve sağlıklı olduğunu gösterir.

RAID Dizilerini Yönetme ve İzleme

RAID dizisi oluşturulduktan sonra, durumunu kontrol etmek ve yönetmek için çeşitli mdadm komutları kullanabilirsiniz.

* RAID Dizisinin Detaylı Bilgilerini Görüntüleme:

sudo mdadm –detail /dev/md0

Bu komut, dizinin durumunu (aktif, bozulmuş, yeniden oluşturuluyor), üye diskleri, olay sayısını ve diğer önemli bilgileri gösterir.

* Tek Bir Bileşen Diskin Bilgilerini İnceleme:

sudo mdadm –examine /dev/sdb1

Bu komut, belirli bir disk bölümünün mdadm süper bloğunu inceler ve o bölümün hangi RAID dizisine ait olduğunu gösterir.

* RAID Dizisini Durdurma:
Bir RAID dizisini ayırmak veya bakım yapmak için durdurmanız gerekebilir. Dizinin bağlı olmadığından emin olun (bkz. Dosya Sistemi Oluşturma ve Bağlama).

sudo mdadm –stop /dev/md0

* RAID Dizisini Birleştirme (Assemble):
Sistem yeniden başlatıldığında veya bir dizi durdurulduktan sonra, mdadm genellikle diziyi otomatik olarak birleştirir. Ancak manuel olarak birleştirmeniz gerekirse:

sudo mdadm –assemble /dev/md0 /dev/sdb1 /dev/sdc1

Veya otomatik olarak algılanan bileşenlerle:

sudo mdadm –assemble –scan

RAID Dizisi Üzerinde Dosya Sistemi Oluşturma

RAID dizisi oluşturulduktan sonra, tıpkı fiziksel bir disk gibi üzerine bir dosya sistemi oluşturmanız gerekir. En yaygın kullanılan dosya sistemlerinden biri ext4‘tür.

sudo mkfs.ext4 /dev/md0

Diğer dosya sistemlerini de kullanabilirsiniz, örneğin XFS (sudo mkfs.xfs /dev/md0) veya Btrfs (sudo mkfs.btrfs /dev/md0). Seçiminiz performans, özellik ve kullanım senaryonuza bağlıdır.

RAID Dizisini Bağlama (Mount Etme)

Dosya sistemi oluşturulduktan sonra, RAID dizisini sisteminizde kullanılabilir hale getirmek için bir bağlama noktasına (mount point) bağlamanız gerekir.

Geçici Bağlama:

Öncelikle bir bağlama noktası dizini oluşturun:

sudo mkdir /mnt/raid0

Ardından RAID dizisini bağlayın:

sudo mount /dev/md0 /mnt/raid0

Artık /mnt/raid0 dizini altında RAID dizinize erişebilirsiniz.

Kalıcı Bağlama (Sistem Yeniden Başlatıldıktan Sonra):

Sistem yeniden başlatıldığında RAID dizisinin otomatik olarak bağlanmasını sağlamak için /etc/fstab dosyasını düzenlemeniz gerekir.

1. RAID Dizisinin UUID’sini alın:
Bu, diziyi benzersiz bir şekilde tanımlar ve disk yolu değişse bile doğru bir şekilde bağlanmasını sağlar.

sudo blkid /dev/md0

Çıktıdan UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" kısmını kopyalayın.

2. /etc/fstab dosyasını düzenleyin:

sudo nano /etc/fstab

Dosyanın sonuna aşağıdaki satırı ekleyin (kendi UUID’nizi ve bağlama noktanızı kullanarak):

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/raid0 ext4 defaults 0 0

* UUID=...: RAID dizinizin UUID’si.
* /mnt/raid0: RAID dizisinin bağlanacağı dizin.
* ext4: Kullanılan dosya sistemi.
* defaults: Bağlama seçenekleri (okuma/yazma, senkronizasyon vb.).
* 0 0: dump ve fsck seçenekleri. Genellikle varsayılan değerlerdir.

Değişiklikleri kaydedin ve düzenleyiciden çıkın (Nano için Ctrl+O, Enter, Ctrl+X).

3. Yeni fstab girdilerini test edin:

sudo mount -a

Bu komut, /etc/fstab dosyasındaki tüm girdileri yeniden bağlamaya çalışır. Herhangi bir hata mesajı almazsanız, ayarlarınız doğrudur.

mdadm Yapılandırmasını Kaydetme

Sisteminizin yeniden başlatıldığında RAID dizilerini otomatik olarak tanıması ve birleştirmesi için mdadm yapılandırmasını kaydetmeniz önemlidir. Bu, mdadm.conf dosyasına yazılır ve initramfs (başlangıçta yüklenen mini Linux sistemi) içine dahil edilir.

1. Mevcut RAID dizilerinin yapılandırmasını mdadm.conf dosyasına yazın:

sudo mdadm –detail –scan –verbose >> /etc/mdadm/mdadm.conf

Bu komut, mevcut tüm aktif RAID dizilerinin detaylarını tarar ve bunları /etc/mdadm/mdadm.conf dosyasına ekler.

2. initramfs’yi güncelleyin:
initramfs, sistem önyüklemesi sırasında çekirdek tarafından kullanılan bir başlangıç ortamıdır. mdadm.conf dosyasındaki değişikliklerin burada da geçerli olması için initramfs‘yi güncellemeniz gerekir.

sudo update-initramfs -u

Bu adım, sistemin bir sonraki önyüklemesinde RAID dizilerini doğru bir şekilde tanımasını ve monte etmesini sağlar.

RAID Yedekliliğini Test Etme (RAID 1, 5, 6, 10 İçin)

Yedekli bir RAID dizisi kurduysanız, bir disk arızası durumunda sistemin nasıl tepki verdiğini test etmek önemlidir. Bu, gelecekteki olası sorunlara karşı hazırlıklı olmanızı sağlar.

1. Disk Arızasını Simüle Etme:

Bir diski arızalı olarak işaretleyebilir ve diziden çıkarabilirsiniz. Örneğin, /dev/sdc1 diskini arızalı olarak işaretleyelim:

sudo mdadm /dev/md0 –fail /dev/sdc1

Şimdi dizinin durumunu kontrol edin:

cat /proc/mdstat

/dev/md0 dizisinin durumunun [U_U] (RAID 1 için) veya [UU_U] (RAID 5 için) gibi arızalı bir bileşeni göstereceğini ve [F] (failed) olarak işaretlendiğini göreceksiniz.

Arızalı diski diziden çıkarın:

sudo mdadm /dev/md0 –remove /dev/sdc1

2. Yeni Bir Yedek Disk Ekleme (Hot-Spare veya Değiştirme):

Bir disk arızalandığında, yeni bir disk ekleyerek diziyi yeniden oluşturabilirsiniz. Yeni diski de RAID için hazırlamanız (bölümleme ve tip fd) gerekir. Diyelim ki yeni diskimiz /dev/sde ve üzerinde /dev/sde1 bölümünü oluşturduk.

sudo mdadm /dev/md0 –add /dev/sde1

Yeni disk eklendikten sonra, RAID dizisi otomatik olarak yeniden oluşturma (rebuild) işlemine başlayacaktır. Bu işlem, arızalı diskin verilerini yeni diske kopyalayarak diziyi tekrar sağlıklı duruma getirir.

Durumu izlemek için:

cat /proc/mdstat

[UUUU] veya [UU] gibi tam sağlıklı duruma geldiğini ve rebuild işleminin tamamlandığını görene kadar bekleyin.

RAID Dizisini Kaldırma

Bir RAID dizisini artık kullanmak istemiyorsanız veya yeniden yapılandırmak istiyorsanız, aşağıdaki adımları izleyerek kaldırabilirsiniz:

1. RAID Dizisini Ayırın:
Dizinin bağlı olduğundan emin olun ve bağlama noktasından ayırın:

sudo umount /mnt/raid0

2. RAID Dizisini Durdurun:

sudo mdadm –stop /dev/md0

3. Her Bir Diskin Süper Bloğunu Temizleyin:
Bu adım, disklerin üzerinde bulunan mdadm metadata bilgilerini siler. Bu sayede diskler tekrar boş diskler gibi kullanılabilir.

sudo mdadm –zero-superblock /dev/sdb1
sudo mdadm –zero-superblock /dev/sdc1
sudo mdadm –zero-superblock /dev/sdd1
# Dizideki tüm diskler için tekrarlayın

4. /etc/fstab ve /etc/mdadm/mdadm.conf Dosyalarını Temizleyin:
RAID dizisiyle ilgili girdileri bu dosyalardan silin.

* /etc/fstab dosyasından ilgili UUID satırını silin veya yorum satırı yapın (# ile başlatın).
* /etc/mdadm/mdadm.conf dosyasından ilgili ARRAY satırını silin.

5. initramfs’yi Güncelleyin:
Değişikliklerin sistem tarafından tanınması için initramfs‘yi tekrar güncelleyin:

sudo update-initramfs -u

Bu adımlardan sonra, diskleriniz tekrar bağımsız ve temiz diskler olarak kullanılabilir hale gelecektir.

Sonuç

Ubuntu 18.04 üzerinde mdadm ile yazılımsal RAID dizileri oluşturmak, sistem yöneticilerine ve kullanıcılara veri güvenliği, depolama performansı ve esneklik açısından önemli avantajlar sunar. Bu makalede adım adım gösterilen süreçler sayesinde, farklı RAID seviyelerini kullanarak ihtiyaçlarınıza uygun depolama çözümleri oluşturabilirsiniz.

RAID, veri kaybına karşı önemli bir koruma sağlasa da, eksiksiz bir yedekleme stratejisinin yerini tutmaz. Önemli verileriniz için düzenli olarak harici depolama birimlerine veya bulut tabanlı servislere yedekleme yapmaya devam etmeniz kritik öneme sahiptir. Ayrıca, RAID dizilerinizin durumunu düzenli olarak cat /proc/mdstat veya sudo mdadm --detail /dev/md0 komutlarıyla kontrol etmek, olası disk arızalarını erken tespit etmenizi ve veri kaybını önlemenizi sağlar.

mdadm aracı, RAID dizilerini yönetmek için çok sayıda başka seçeneğe ve gelişmiş özelliğe sahiptir (örneğin, hot-spare diskler, diziyi genişletme, migrasyon). Bu makale, temel RAID dizisi kurulumu ve yönetimi için kapsamlı bir rehber sunmaktadır. İhtiyaçlarınıza göre daha fazla bilgi edinmek için man mdadm komutunu kullanarak mdadm‘in detaylı kılavuzuna başvurabilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.