Konfigurasi RAID Perangkat Lunak di Linux

Ini adalah skenario umum untuk menggunakan RAID perangkat lunak pada komputer virtual Linux di Azure untuk menyajikan beberapa disk data yang terpasang sebagai satu perangkat RAID. Biasanya ini dapat digunakan untuk meningkatkan performa dan memungkinkan peningkatan throughput dibandingkan dengan hanya menggunakan satu disk.

Melampirkan disk data

Dua atau beberapa disk data kosong diperlukan untuk mengonfigurasi perangkat RAID. Alasan utama untuk membuat perangkat RAID adalah untuk meningkatkan performa IO disk Anda. Berdasarkan kebutuhan IO Anda, Anda dapat memilih untuk melampirkan disk yang disimpan di Standard Storage kami, dengan hingga 500 IO/ps per disk atau penyimpanan Premium kami dengan hingga 5000 IO/ps per disk. Artikel ini tidak menjelaskan secara rinci tentang cara memprovisikan dan melampirkan disk data ke komputer virtual Linux. Lihat artikel Microsoft Azure melampirkan disk untuk instruksi terperinci tentang cara melampirkan disk data kosong ke komputer virtual Linux di Azure.

Penting

Jangan mencampur disk dengan ukuran yang berbeda, melakukannya akan mengakibatkan performa raidset terbatas pada disk yang paling lambat.

Menginstal utilitas mdadm

  • Ubuntu

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

    sudo yum install mdadm
    
  • SLES dan openSUSE

    zypper install mdadm
    

Membuat partisi disk

Dalam contoh ini, kami membuat partisi disk tunggal pada /dev/sdc. Partisi disk baru akan disebut /dev/sdc1.

  1. Mulai fdisk membuat partisi

    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. Tekan 'n' pada perintah untuk membuat partisi new:

    Command (m for help): n
    
  3. Selanjutnya, tekan 'p' untuk membuat partisi primary:

    Command action
            e   extended
            p   primary partition (1-4)
    
  4. Tekan '1' untuk memilih nomor partisi 1:

    Partition number (1-4): 1
    
  5. Pilih titik awal partisi baru, atau tekan <enter> untuk menerima default untuk menempatkan partisi di awal ruang kosong pada drive:

    First cylinder (1-1305, default 1):
    Using default value 1
    
  6. Pilih ukuran partisi, misalnya jenis '+10G' untuk membuat partisi 10 gigabyte. Atau, tekan <enter> buat partisi tunggal yang mencakup seluruh drive:

    Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
    Using default value 1305
    
  7. Selanjutnya, ubah ID dan type partisi dari ID default '83' (Linux) menjadi ID 'fd' (Linux raid auto):

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): fd
    
  8. Terakhir, tulis tabel partisi ke drive dan keluar dari fdisk:

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

Membuat array RAID

  1. Contoh berikut akan "stripe" (RAID level 0) tiga partisi yang terletak di tiga disk data terpisah (sdc1, sdd1, sde1). Setelah menjalankan perintah ini, perangkat RAID baru yang disebut /dev/md127 dibuat. Perhatikan juga bahwa jika disk data ini, kami sebelumnya merupakan bagian dari array RAID lain yang tidak berfungsi, mungkin perlu menambahkan --force parameter ke mdadm perintah:

    sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
        /dev/sdc1 /dev/sdd1 /dev/sde1
    
  2. Membuat sistem file pada perangkat RAID baru

    CentOS, Oracle Linux, SLES 12, openSUSE, dan Ubuntu

    sudo mkfs -t ext4 /dev/md127
    

    SLES 11

    sudo mkfs -t ext3 /dev/md127
    

    SLES 11 - aktifkan boot.md dan buat mdadm.conf

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

    Catatan

    Boot ulang mungkin diperlukan setelah membuat perubahan ini pada sistem SUSE. Langkah ini tidak diperlukan pada SLES 12.

Tambahkan sistem file baru ke /etc/fstab

Penting

Salah mengedit file /etc/fstab dapat mengakibatkan sistem yang tidak dapat di-boot. Jika tidak yakin, lihat dokumentasi distribusi untuk informasi tentang cara mengedit file ini dengan tepat. Sebaiknya cadangan file /etc/fstab dibuat sebelum mengedit.

  1. Buat titik pemasangan yang diinginkan untuk sistem file baru Anda, misalnya:

    sudo mkdir /data
    
  2. Saat mengedit /etc/fstab, UUID harus digunakan untuk mereferensikan sistem file daripada nama perangkat. blkid Gunakan utilitas untuk menentukan UUID untuk sistem file baru:

    sudo /sbin/blkid
    ...........
    /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
    
  3. Buka /etc/fstab di editor teks dan tambahkan entri untuk sistem file baru, misalnya:

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

    Atau pada SLES 11:

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

    Kemudian, simpan dan tutup /etc/fstab.

  4. Uji apakah entri /etc/fstab sudah benar:

    sudo mount -a
    

    Jika perintah ini menghasilkan pesan kesalahan, silakan periksa sintaks dalam file /etc/fstab.

    Selanjutnya jalankan mount perintah untuk memastikan sistem file dipasang:

    mount
    .................
    /dev/md127 on /data type ext4 (rw)
    
  5. (Opsional) Parameter Boot Failsafe

    konfigurasi fstab

    Banyak distribusi termasuk nobootwait parameter atau nofail pemasangan yang dapat ditambahkan ke file /etc/fstab. Parameter ini memungkinkan kegagalan saat memasang sistem file tertentu dan memungkinkan sistem Linux untuk terus melakukan boot meskipun tidak dapat memasang sistem file RAID dengan benar. Lihat dokumentasi distribusi Anda untuk informasi selengkapnya tentang parameter ini.

    Contoh (Ubuntu):

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

    Parameter boot Linux

    Selain parameter di atas, parameter kernel "bootdegraded=true" dapat memungkinkan sistem untuk melakukan boot meskipun RAID dianggap rusak atau terdegradasi, misalnya jika drive data secara tidak sengaja dihapus dari komputer virtual. Secara default ini juga dapat mengakibatkan sistem yang tidak dapat di-boot.

    Silakan lihat dokumentasi distribusi Anda tentang cara mengedit parameter kernel dengan benar. Misalnya, dalam banyak distribusi (CentOS, Oracle Linux, SLES 11) parameter ini dapat ditambahkan secara manual ke file ""/boot/grub/menu.lst. Pada Ubuntu, parameter ini dapat ditambahkan ke GRUB_CMDLINE_LINUX_DEFAULT variabel pada "/etc/default/grub".

Dukungan TRIM/UNMAP

Beberapa kernel Linux mendukung operasi TRIM/UNMAP untuk membuang blok yang tidak digunakan pada disk. Operasi ini terutama berguna dalam penyimpanan standar untuk memberi tahu Azure bahwa halaman yang dihapus tidak lagi valid dan dapat dibuang. Membuang halaman dapat menghemat biaya jika Anda membuat file besar lalu menghapusnya.

Catatan

RAID mungkin tidak mengeluarkan perintah buang jika ukuran gugus untuk array diatur ke kurang dari default (512KB). Ini karena granularitas yang tidak di petakan pada Host juga 512KB. Jika Anda memodifikasi ukuran gugus array melalui parameter mdadm --chunk= , permintaan TRIM/unmap dapat diabaikan oleh kernel.

Ada dua cara untuk mengaktifkan dukungan TRIM di komputer virtual Linux Anda. Seperti biasa, periksa distribusi Anda untuk mengetahui pendekatan yang direkomendasikan:

  • discard Gunakan opsi pemasangan di /etc/fstab, misalnya:

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • Dalam beberapa kasus discard , opsi mungkin memiliki implikasi performa. Alternatifnya, Anda dapat menjalankan perintah fstrim secara manual dari baris perintah, atau menambahkannya ke crontab Anda untuk berjalan secara teratur:

    Ubuntu

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

    RHEL/CentOS

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