Konfigurasi RAID Perangkat Lunak di Linux
Ini adalah skenario umum untuk menggunakan RAID perangkat lunak pada mesin virtual Linux di Azure untuk menyajikan beberapa disk data terlampir sebagai satu perangkat RAID. Biasanya ini dapat digunakan untuk meningkatkan kinerja dan memungkinkan throughput yang lebih baik dibandingkan dengan hanya menggunakan satu disk.
Melampirkan disk data
Dua atau lebih disk data kosong diperlukan untuk mengonfigurasi perangkat RAID. Alasan utama untuk membuat perangkat RAID adalah untuk meningkatkan kinerja IO disk Anda. Berdasarkan kebutuhan IO Anda, Anda dapat memilih untuk melampirkan disk yang disimpan dalam Storage Standar 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 menyediakan dan melampirkan disk data ke mesin 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 berbeda, melakukannya akan menghasilkan kinerja raidset terbatas pada disk paling lambat.
Instal utilitas mdadm
Ubuntu
sudo apt-get update sudo apt-get install mdadmCentOS & Oracle Linux
sudo yum install mdadmSLES dan openSUSE
zypper install mdadm
Membuat partisi disk
Dalam contoh ini, kita membuat partisi disk tunggal pada /dev/sdc. Partisi disk baru akan disebut /dev/sdc1.
Mulai
fdiskmembuat partisisudo 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').Tekan 'n' pada prompt untuk membuat partisi new:
Command (m for help): nSelanjutnya, tekan 'p' untuk membuat partisi primary:
Command action e extended p primary partition (1-4)Tekan '1' untuk memilih partisi nomor 1:
Partition number (1-4): 1Pilih 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 1Pilih ukuran partisi, misalnya ketik '+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 1305Selanjutnya, 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): fdTerakhir, tulis tabel partisi ke drive dan keluar fdisk:
Command (m for help): w The partition table has been altered!
Membuat array RAID
Contoh berikut akan "stripe" (RAID level 0) tiga partisi yang terletak pada 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 sebelumnya kita bagian dari array RAID lain yang tidak berfungsi, mungkin perlu menambahkan
--forceparameter kemdadmperintah:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1Membuat sistem file di perangkat RAID baru
CentOS, Oracle Linux, SLES 12, openSUSE, dan Ubuntu
sudo mkfs -t ext4 /dev/md127SLES 11
sudo mkfs -t ext3 /dev/md127SLES 11 - aktifkan boot.md dan buat mdadm.conf
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.confCatatan
Reboot mungkin diperlukan setelah membuat perubahan ini pada sistem SUSE. Langkah ini tidak diperlukan pada SLES 12.
Menambahkan 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.
Buat titik pemasangan yang diinginkan untuk sistem file baru Anda, misalnya:
sudo mkdir /dataSaat mengedit /etc/fstab, UUID harus digunakan untuk mereferensikan sistem file daripada nama perangkat.
blkidGunakan utilitas untuk menentukan UUID untuk sistem file baru:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"Buka /etc/fstab di editor teks dan tambahkan entri untuk sistem file baru, misalnya:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2Atau pada SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2Kemudian, simpan dan tutup /etc/fstab.
Uji bahwa entri /etc/fstab sudah benar:
sudo mount -aJika perintah ini menghasilkan pesan kesalahan, silakan periksa sintaks dalam file /etc/fstab.
Selanjutnya jalankan
mountperintah untuk memastikan sistem file dipasang:mount ................. /dev/md127 on /data type ext4 (rw)(Opsional) Parameter Boot Failsafe
fstab configuration
Banyak distribusi termasuk
nobootwaitparameter ataunofailmount yang dapat ditambahkan ke file /etc/fstab. Parameter ini memungkinkan kegagalan saat memasang sistem file tertentu dan memungkinkan sistem Linux untuk terus boot bahkan jika tidak dapat memasang sistem file RAID dengan benar. Lihat dokumentasi distribusi Anda untuk informasi lebih lanjut tentang parameter ini.Contoh (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2Parameter boot Linux
Selain parameter di atas, parameter kernel "
bootdegraded=true" dapat memungkinkan sistem untuk boot bahkan jika RAID dianggap rusak atau terdegradasi, misalnya jika drive data secara tidak sengaja dihapus dari mesin virtual. Secara default ini juga bisa menghasilkan sistem yang tidak dapat di-boot.Silakan merujuk ke 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". Di Ubuntu parameter ini dapat ditambahkan keGRUB_CMDLINE_LINUX_DEFAULTvariabel 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 dan kemudian menghapusnya.
Catatan
RAID mungkin tidak mengeluarkan perintah buang jika ukuran chunk untuk array diatur ke kurang dari default (512KB). Ini karena granularitas unmap pada Host juga 512KB. Jika Anda memodifikasi ukuran chunk array melalui parameter mdadm --chunk= , maka 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:
discardGunakan opsi mount di/etc/fstab, misalnya:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2Dalam beberapa kasus, opsi ini
discardmungkin memiliki implikasi kinerja. Alternatifnya, Anda dapat menjalankan perintahfstrimsecara manual dari baris perintah, atau menambahkannya ke crontab Anda untuk berjalan secara teratur:Ubuntu
# sudo apt-get install util-linux # sudo fstrim /dataRHEL/CentOS
# sudo yum install util-linux # sudo fstrim /data