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.
fdisk
Bölüm oluşturmaya başlamasudo 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').
N ew bölümü oluşturmak için istemde ' n' tuşuna basın:
Command (m for help): n
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)
Bölüm numarası 1'i seçmek için '1' tuşuna basın:
Partition number (1-4): 1
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
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
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
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
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
--force
mdadm
komuta eklemek gerekebileceğini unutmayın:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
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.
Yeni dosya sisteminiz için istenen bağlama noktasını oluşturun, örneğin:
sudo mkdir /data
/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"
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.
/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)
(İ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şkenineGRUB_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/fstab
bağ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ındanfstrim
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