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.
Mulai
fdisk
membuat 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 perintah untuk membuat partisi new:
Command (m for help): n
Selanjutnya, tekan 'p' untuk membuat partisi primary:
Command action e extended p primary partition (1-4)
Tekan '1' untuk memilih nomor partisi 1:
Partition number (1-4): 1
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
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
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
Terakhir, tulis tabel partisi ke drive dan keluar dari 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 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 kemdadm
perintah:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
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.
Buat titik pemasangan yang diinginkan untuk sistem file baru Anda, misalnya:
sudo mkdir /data
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"
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.
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)
(Opsional) Parameter Boot Failsafe
konfigurasi fstab
Banyak distribusi termasuk
nobootwait
parameter ataunofail
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 keGRUB_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 perintahfstrim
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