Linux'ta Yazılım RAID'i yapılandırma

Birden çok bağlı veri disklerini tek bir RAID cihazı olarak sunmak için Azure'daki Linux sanal makinelerinde yazılım RAID kullanmak yaygın bir senaryodur. Bu genellikle performansı geliştirmek ve yalnızca tek bir diskle karşılaştırıldığında daha iyi aktarım hızı sağlamak için kullanılabilir.

Veri diskleri ekleme

RAID cihazını yapılandırmak için iki veya daha fazla boş veri diski gerekir. RAID cihazı oluşturmanın birincil nedeni, disk GÇ'nizin performansını geliştirmektir. GÇ gereksinimlerinize bağlı olarak, Disk başına 500 GÇ/ps ile Standart Depolama alanımızda depolanan diskleri veya disk başına 5000 GÇ/ps'ye kadar Premium depolama alanımızı eklemeyi seçebilirsiniz. Bu makale, Bir Linux sanal makinesine veri diskleri sağlama ve ekleme hakkında ayrıntılı bilgi vermez. Boş bir veri diskini Azure'da linux sanal makinesine ekleme hakkında ayrıntılı yönergeler için Microsoft Azure makalesine bakın.

Önemli

Farklı boyutlardaki diskleri karıştırmayın, bunu yaptığınızda raidset performansı en yavaş diskle sınırlı olacaktır.

mdadm yardımcı programını yükleme

  • Ubuntu

    sudo apt-get update
    sudo apt-get install mdadm
    
  • CentOS & Oracle Linux

    sudo yum install mdadm
    
  • SLES ve openSUSE

    zypper install mdadm
    

Disk bölümlerini oluşturma

Bu örnekte , /dev/sdc üzerinde tek bir disk bölümü oluşturacağız. Yeni disk bölümü /dev/sdc1 olarak adlandırılır.

  1. fdisk Bölüm oluşturmaya başlama

    sudo fdisk /dev/sdc
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0xa34cb70c.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                    switch off the mode (command 'c') and change display units to
                    sectors (command 'u').
    
  2. N ew bölümü oluşturmak için istemde ' n' tuşuna basın:

    Command (m for help): n
    
  3. Ardından p jant bölümü oluşturmak için ' p' tuşuna basın:

    Command action
            e   extended
            p   primary partition (1-4)
    
  4. Bölüm numarası 1'i seçmek için '1' tuşuna basın:

    Partition number (1-4): 1
    
  5. Yeni bölümün başlangıç noktasını seçin veya bölümü sürücüdeki boş alanın başına yerleştirmek için varsayılanı kabul etmek için basın <enter> :

    First cylinder (1-1305, default 1):
    Using default value 1
    
  6. Bölümün boyutunu seçin, örneğin 10 gigabaytlık bir bölüm oluşturmak için '+10G' yazın. Ya da sürücünün tamamına yayılan tek bir bölüm oluştur'a basın <enter> :

    Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
    Using default value 1305
    
  7. Ardından, varsayılan kimliği '83' (Linux) olan bölümün kimliğini ve type değerini 'fd' kimliği (Linux raid auto) olarak değiştirin:

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): fd
    
  8. Son olarak, bölüm tablosunu sürücüye yazın ve fdisk'ten çıkın:

    Command (m for help): w
    The partition table has been altered!
    

RAID dizisini oluşturma

  1. Aşağıdaki örnek, üç ayrı veri diskinde (sdc1, sdd1, sde1) bulunan üç bölümü "şeritle" (RAID düzeyi 0) oluşturur. Bu komutu çalıştırdıktan sonra /dev/md127 adlı yeni bir RAID cihazı oluşturulur. Ayrıca, bu veri diskleri daha önce başka bir etkisiz RAID dizisinin parçası olursak parametresini --forcemdadm komuta eklemek gerekebileceğini unutmayın:

    sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
        /dev/sdc1 /dev/sdd1 /dev/sde1
    
  2. Yeni RAID cihazında dosya sistemi oluşturma

    CentOS, Oracle Linux, SLES 12, openSUSE ve Ubuntu

    sudo mkfs -t ext4 /dev/md127
    

    SLES 11

    sudo mkfs -t ext3 /dev/md127
    

    SLES 11 - boot.md etkinleştirme ve mdadm.conf oluşturma

    sudo -i chkconfig --add boot.md
    sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
    

    Not

    SUSE sistemlerinde bu değişiklikler yaptıktan sonra yeniden başlatma gerekebilir. Bu adım SLES 12'de gerekli değildir .

Yeni dosya sistemini /etc/fstab dosyasına ekleme

Önemli

/etc/fstab dosyasının yanlış düzenlenmesi, önyükleme yapılamaz bir sisteme neden olabilir. Emin değilseniz, bu dosyayı doğru düzenleme hakkındaki bilgiler için dağıtımın belgelerine bakın. Düzenlemeden önce /etc/fstab dosyasının bir yedeğinin oluşturulması da önerilir.

  1. Yeni dosya sisteminiz için istenen bağlama noktasını oluşturun, örneğin:

    sudo mkdir /data
    
  2. /etc/fstab düzenlenirken, cihaz adı yerine dosya sistemine başvurmak için UUID kullanılmalıdır. blkid Yeni dosya sistemi için UUID'yi belirlemek için yardımcı programını kullanın:

    sudo /sbin/blkid
    ...........
    /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
    
  3. Metin düzenleyicisinde /etc/fstab dosyasını açın ve yeni dosya sistemi için bir girdi ekleyin, örneğin:

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults  0  2
    

    Veya SLES 11'de:

    /dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext3  defaults  0  2
    

    Ardından /etc/fstab dosyasını kaydedin ve kapatın.

  4. /etc/fstab girişinin doğru olup olmadığını test edin:

    sudo mount -a
    

    Bu komut bir hata iletisiyle sonuçlanırsa lütfen /etc/fstab dosyasındaki söz dizimini denetleyin.

    Ardından, dosya sisteminin bağlandığından mount emin olmak için komutunu çalıştırın:

    mount
    .................
    /dev/md127 on /data type ext4 (rw)
    
  5. (İsteğe bağlı) Failsafe Önyükleme Parametreleri

    fstab yapılandırması

    Birçok dağıtım, /etc/fstab dosyasına eklenebilen veya nofail bağlama parametrelerini içerirnobootwait. Bu parametreler, belirli bir dosya sistemini bağlarken hatalara izin verir ve RAID dosya sistemini düzgün bir şekilde bağlayamasa bile Linux sisteminin önyüklemeye devam etmelerine izin verir. Bu parametreler hakkında daha fazla bilgi için dağıtımınızın belgelerine bakın.

    Örnek (Ubuntu):

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,nobootwait  0  2
    

    Linux önyükleme parametreleri

    Yukarıdaki parametrelere ek olarak, "bootdegraded=true" çekirdek parametresi RAID bozuk veya düzeyi düşürülmüş olarak algılanıyor olsa bile sistemin önyüklemesine izin verebilir( örneğin, bir veri sürücüsü yanlışlıkla sanal makineden kaldırılırsa). Varsayılan olarak bu durum önyüklenemez bir sisteme de neden olabilir.

    Çekirdek parametrelerini düzgün bir şekilde düzenleme hakkında lütfen dağıtımınızın belgelerine bakın. Örneğin, birçok dağıtımda (CentOS, Oracle Linux, SLES 11) bu parametreler "/boot/grub/menu.lst" dosyasına el ile eklenebilir. Ubuntu'da bu parametre "/etc/default/grub" üzerindeki değişkenine GRUB_CMDLINE_LINUX_DEFAULT eklenebilir.

TRIM/UNMAP desteği

Bazı Linux çekirdekleri diskte kullanılmayan blokları atmak için TRIM/UNMAP işlemlerini destekler. Bu işlemler, azure'a silinen sayfaların artık geçerli olmadığını ve atılabildiğini bildirmek için öncelikle standart depolamada yararlıdır. Sayfaları atmak, büyük dosyalar oluşturup bunları silerseniz maliyet tasarrufu sağlayabilir.

Not

Dizinin öbek boyutu varsayılandan (512 KB) küçükse RAID atma komutları vermeyebilir. Bunun nedeni, Konakta eşlenmeyen ayrıntı düzeyinin de 512 KB olmasıdır. Mdadm --chunk= parametresi aracılığıyla dizinin öbek boyutunu değiştirdiyseniz TRIM/unmap istekleri çekirdek tarafından yoksayılabilir.

Linux VM'nizde TRIM desteğini etkinleştirmenin iki yolu vardır. Her zamanki gibi önerilen yaklaşım için dağıtımınıza başvurun:

  • discard içinde /etc/fstabbağlama seçeneğini kullanın, örneğin:

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • Bazı durumlarda bu seçeneğin discard performans üzerindeki etkileri olabilir. Alternatif olarak, komutu komut satırından fstrim el ile çalıştırabilir veya düzenli olarak çalıştırmak için crontab'ınıza ekleyebilirsiniz:

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /data
    

    RHEL/CentOS

    # sudo yum install util-linux
    # sudo fstrim /data