Linux VM’ye disk ekleme
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri
Bu makalede, bakım veya yeniden boyutlandırma nedeniyle VM'niz yeniden sağlanmış olsa bile verilerinizi koruyabilmeniz için VM'nize kalıcı disk ekleme işlemi gösterilmektedir.
VM'ye yeni disk ekleme
VM'nize yeni, boş bir veri diski eklemek istiyorsanız parametresiyle --new
az vm disk attach komutunu kullanın. VM'niz kullanılabilirlik alanındaysa, disk vm ile aynı bölgede otomatik olarak oluşturulur. Daha fazla bilgi için bkz. Kullanılabilirlik Alanları genel bakış. Aşağıdaki örnek, boyutu 50 Gb olan myDataDisk adlı bir disk oluşturur:
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
Daha düşük gecikme süresi
Belirli bölgelerde disk ekleme gecikme süresi azaltıldığı için %15'e varan bir iyileştirme göreceksiniz. Vm'ler arasında planlı/plansız yük devretmeleriniz varsa, iş yükünüzü ölçeklendiriyorsanız veya Azure Kubernetes Service gibi yüksek ölçekli durum bilgisi olan bir iş yükü çalıştırıyorsanız bu yararlı olur. Ancak, bu geliştirme açık disk ekleme komutuyla sınırlıdır. az vm disk attach
gibi az vm update
örtük olarak ekleme gerçekleştirebilecek bir komut çağırırsanız performans geliştirmesini görmezsiniz. Bu geliştirmeyi görmek için açık ekleme komutunu çağırmak dışında herhangi bir işlem yapmanız gerekmez.
Şu anda aşağıdakiler dışında tüm genel bölgelerde daha düşük gecikme süresi kullanılabilir:
- Orta Kanada
- Central US
- Doğu ABD
- Doğu ABD 2
- Orta Güney ABD
- Batı ABD 2
- Almanya Kuzey
- Jio Hindistan Batı
- Kuzey Avrupa
- West Europe
Var olan bir diski ekleme
Var olan bir diski eklemek için disk kimliğini bulun ve kimliği az vm disk attach komutuna geçirin. Aşağıdaki örnek, myResourceGroup'ta myDataDisk adlı bir diski sorgular ve ardından myVM adlı VM'ye ekler:
diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)
az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId
Diski biçimlendirme ve bağlama
Linux VM'nizin kullanabilmesi için yeni diskinizi bölümlere ayırmak, biçimlendirmek ve bağlamak için SSH'yi VM'nize ekleyin. Daha fazla bilgi için bkz. Azure’da Linux ile SSH kullanma. Aşağıdaki örnek, azureuser kullanıcı adıyla genel IP adresi 10.123.123.25 olan bir VM'ye bağlanır:
ssh azureuser@10.123.123.25
Diski bulma
VM'nize bağlandıktan sonra diski bulun. Bu örnekte, diskleri listelemek için kullanıyoruz lsblk
.
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
Çıktı aşağıdaki örneğe benzer:
sda 0:0:0:0 30G
├─sda1 29.9G /
├─sda14 4M
└─sda15 106M /boot/efi
sdb 1:0:1:0 14G
└─sdb1 14G /mnt
sdc 3:0:0:0 50G
sdc
50G olduğundan istediğimiz disk buradadır. Birden çok disk eklerseniz ve hangi diskin yalnızca boyuta bağlı olduğundan emin değilseniz portaldaki VM sayfasına gidebilir, Diskler'i seçebilir ve Veri diskleri'nin altındaki diskin LUN numarasını denetleyebilirsiniz. Portaldaki LUN numarasını çıkışın HTCL bölümünün son numarası olan LUN ile karşılaştırın. Bir diğer seçenek de dizinin içeriğini listelemektir /dev/disk/azure/scsi1
:
ls -l /dev/disk/azure/scsi1
Çıktı aşağıdaki örneğe benzer olmalıdır:
lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc
Diski biçimlendirme
Disk boyutu iki tebibayt (TiB) veya daha büyükse, ile diski parted
biçimlendirin, 2TiB'nin altındaysa GPT bölümleme kullanmanız gerekir. Bu durumda MBR veya GPT bölümleme kullanabilirsiniz.
Not
Dağıtımınız için kullanılabilen en son sürümü parted
kullanmanız önerilir.
Disk boyutu 2 tebibayt (TiB) veya daha büyükse GPT bölümleme kullanmanız gerekir. Disk boyutu 2 TiB'nin altındaysa, MBR veya GPT bölümleme kullanabilirsiniz.
Aşağıdaki örnek, ilk veri diskinin genellikle çoğu VM'de yer aldığı üzerinde kullanır parted
/dev/sdc
. değerini diskiniz için doğru seçenekle değiştirin sdc
. XFS dosya sistemini kullanarak da biçimlendiriyoruz.
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
sudo mkfs.xfs /dev/sdc1
Çekirdeğin partprobe
yeni bölüm ve dosya sistemiyle ilgili bilgi olduğundan emin olmak için yardımcı programını kullanın. Kullanılamaması partprobe
blkid veya lsblk komutlarının yeni dosya sistemi için UUID'yi hemen döndürmemesine neden olabilir.
Diski bağlama
Şimdi kullanarak mkdir
dosya sistemini bağlamak için bir dizin oluşturun. Aşağıdaki örnek adresinde /datadrive
bir dizin oluşturur:
sudo mkdir /datadrive
Ardından dosya sistemini bağlamak için kullanın mount
. Aşağıdaki örnek, bölümü /datadrive
bağlama noktasına bağlar/dev/sdc1
:
sudo mount /dev/sdc1 /datadrive
Bağlamayı kalıcı hale
Yeniden başlatma sonrasında sürücünün otomatik olarak yeniden bağlandığından emin olmak için dosyaya /etc/fstab
eklenmesi gerekir. UUID'nin (Evrensel Benzersiz Tanımlayıcı) içinde yalnızca cihaz adı (/dev/sdc1 gibi) yerine sürücüye başvurmak için kullanılması /etc/fstab
da kesinlikle önerilir. Önyükleme sırasında işletim sistemi bir disk hatası algılarsa, UUID'nin kullanılması belirlenen konuma yanlış diskin bağlanmasını önler. Bundan sonra kalan veri diskleri aynı cihaz kimliklerine atanabilir. Yeni sürücünün UUID'sini bulmak için blkid
yardımcı programını kullanın:
sudo blkid
Çıktı aşağıdaki örneğe benzer:
/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"
Not
/etc/fstab
dosyasının hatalı düzenlenmesi sonucunda önyüklemesi yapılamayan bir sistem ortaya çıkar. Emin değilseniz, bu dosyayı doğru düzenleme hakkındaki bilgiler için dağıtımın belgelerine bakın. Ayrıca, düzenlemeden önce dosyanın bir yedeğinin /etc/fstab
oluşturulması da önerilir.
Ardından dosyayı bir metin düzenleyicisinde açın /etc/fstab
. Önceki adımlarda oluşturulan cihazın UUID değerini /dev/sdc1
ve bağlama noktasını /datadrive
kullanarak dosyanın sonuna bir satır ekleyin. Bu makaledeki örnek kullanıldığında, yeni satır aşağıdaki gibi görünür:
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
Dosyayı düzenlemeyi bitirdiğinizde düzenleyiciyi kaydedin ve kapatın.
Alternatif olarak, aşağıdaki komutu çalıştırarak diski dosyaya /etc/fstab
ekleyebilirsiniz:
echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2" >> /etc/fstab
Not
Daha sonra fstab'ı düzenlemeden bir veri diskinin kaldırılması VM'nin önyüklemesinin başarısız olmasına neden olabilir. Çoğu dağıtım nofail ve/veya nobootwait fstab seçeneklerini sağlar. Bu seçenekler, disk önyükleme zamanında bağlanamıyor olsa bile sistemin önyüklemesine olanak sağlar. Bu parametreler hakkında daha fazla bilgi için dağıtımınızın belgelerine bakın.
Nofail seçeneği, dosya sistemi bozuk olsa veya disk önyükleme zamanında mevcut olmasa bile VM'nin başlatılmasını sağlar. Bu seçenek olmadan, FSTAB hataları nedeniyle Linux VM'ye SSH yapılamıyor başlığında açıklandığı gibi davranışlarla karşılaşabilirsiniz
Azure VM Seri Konsolu, fstab'ın değiştirilmesi önyükleme hatasına neden olursa VM'nize konsol erişimi için kullanılabilir. Seri Konsol belgelerinde daha fazla ayrıntı bulabilirsiniz.
Azure'da Linux için TRIM/UNMAP desteği
Bazı Linux çekirdekleri diskte kullanılmayan blokları atmak için TRIM/UNMAP işlemlerini destekler. Bu özellik öncelikli olarak Azure'a silinen sayfaların artık geçerli olmadığını ve atılabildiğini bildirmek için yararlıdır. Bu özellik, yönetilmeyen standart diskler ve disk anlık görüntüleri gibi tüketilen depolama miktarına göre faturalandırılan disklerde tasarruf edebilir.
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=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 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:
Sorun giderme
Linux VM'sine veri diskleri eklerken LUN 0'da bir disk yoksa hatalarla karşılaşabilirsiniz. Komutu kullanarak el ile disk ekliyorsanız ve Azure platformunun az vm disk attach -new
uygun LUN'yi belirlemesine izin vermek yerine bir LUN (--lun
) belirtirseniz, LUN 0'da bir diskin zaten var olduğuna / var olmasına dikkat edin.
çıktısının bir parçacığını lsscsi
gösteren aşağıdaki örneği göz önünde bulundurun:
[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd
İki veri diski LUN 0 ve LUN 1'de (çıkış ayrıntılarındaki lsscsi
[host:channel:target:lun]
ilk sütun) bulunur. Her iki diske de VM'nin içinden erişilebilir olmalıdır. LUN 1'e eklenecek ilk diski ve LUN 2'deki ikinci diski el ile belirttiyseniz, diskleri VM'nizin içinden doğru şekilde göremeyebilirsiniz.
Not
Bu örneklerde Azure host
değeri 5'tir, ancak bu değer seçtiğiniz depolama türüne bağlı olarak değişebilir.
Bu disk davranışı bir Azure sorunu değildir, ancak Linux çekirdeğinin SCSI belirtimlerini takip etme şeklidir. Linux çekirdeği ekli cihazlar için SCSI veri yolunu taradığında, sistemin ek cihazları taramaya devam edebilmesi için LUN 0'da bir cihaz bulunmalıdır. Bu nedenle:
- LUN 0'da diske sahip olduğunuzu doğrulamak için veri diski ekledikten sonra çıktısını
lsscsi
gözden geçirin. - Diskiniz VM'nizde doğru şekilde gösterilmiyorsa LUN 0'da bir disk olduğunu doğrulayın.
Sonraki adımlar
- Linux VM'nizin doğru yapılandırıldığından emin olmak için Linux makinenizin performansını iyileştirme önerilerini gözden geçirin.
- Daha fazla disk ekleyerek depolama kapasitenizi genişletin ve ek performans için RAID'i yapılandırın.