Přidání disku do virtuálního počítače s Linuxem
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
V tomto článku se dozvíte, jak k virtuálnímu počítači připojit trvalý disk, abyste mohli zachovat data – i když je virtuální počítač znovu zřízený kvůli údržbě nebo změně velikosti.
Připojení nového disku k virtuálnímu počítači
Pokud chcete na virtuálním počítači přidat nový prázdný datový disk, použijte příkaz az vm disk attach s parametrem --new
. Pokud je váš virtuální počítač v zóně dostupnosti, disk se automaticky vytvoří ve stejné zóně jako virtuální počítač. Další informace najdete v tématu Přehled Zóny dostupnosti. Následující příklad vytvoří disk s názvem myDataDisk o velikosti 50 Gb:
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
Nižší latence
Ve vybraných oblastech se snížila latence připojení disku, takže se zobrazí zlepšení až o 15 %. To je užitečné, pokud máte naplánované nebo neplánované převzetí služeb při selhání mezi virtuálními počítači, škálujete úlohu nebo používáte vysoce škálovanou stavovou úlohu, jako je Azure Kubernetes Service. Toto vylepšení je však omezeno na explicitní příkaz připojit disk , az vm disk attach
. Pokud zavoláte příkaz, který může implicitně provést připojení, například az vm update
, neuvidíte zlepšení výkonu. Abyste toto vylepšení viděli, nemusíte provádět žádnou jinou akci než voláním příkazu explicitního připojení.
Nižší latence je aktuálně dostupná v každé veřejné oblasti s výjimkou:
- Střední Kanada
- Střední USA
- East US
- USA – východ 2
- Středojižní USA
- Západní USA 2
- Německo – sever
- Indie – západ
- Severní Evropa
- West Europe
Připojení stávajícího disku
Pokud chcete připojit existující disk, vyhledejte ID disku a předejte ho příkazu az vm disk attach . Následující příklad dotazuje disk s názvem myDataDisk v myResourceGroup a pak ho připojí k virtuálnímu počítači s názvem myVM:
diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)
az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId
Formátování a připojení disku
Pokud chcete rozdělit nový disk na oddíly, naformátovat ho a připojit ho, aby ho mohl virtuální počítač s Linuxem používat, připojte se k virtuálnímu počítači pomocí SSH. Další informace najdete v tématu Jak použít SSH s Linuxem v Azure. Následující příklad se připojí k virtuálnímu počítači s veřejnou IP adresou 10.123.123.25 s uživatelským jménem azureuser:
ssh azureuser@10.123.123.25
Vyhledání disku
Jakmile se připojíte k virtuálnímu počítači, vyhledejte disk. V tomto příkladu používáme lsblk
k výpisu disků.
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
Výstup se podobá následujícímu příkladu:
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
Tady je disk, sdc
který chceme, protože je 50G. Pokud přidáte více disků a nejste si jistí, který disk je založený na velikosti, můžete přejít na stránku virtuálního počítače na portálu, vybrat Disky a zkontrolovat číslo logické jednotky (LUN) disku v části Datové disky. Porovnejte číslo logické jednotky z portálu s posledním číslem části výstupu HTCL , což je LUN. Další možností je vypsat obsah /dev/disk/azure/scsi1
adresáře:
ls -l /dev/disk/azure/scsi1
Výstup by měl být podobný následujícímu příkladu:
lrwxrwxrwx 1 root root 12 Mar 28 19:41 lun0 -> ../../../sdc
Formátování disku
Naformátujte disk pomocí parted
, pokud je velikost disku dva tebibajtů (TiB) nebo větší, musíte použít dělení GPT, pokud je pod 2TiB, pak můžete použít dělení MBR nebo GPT oddíly.
Poznámka:
Doporučujeme použít nejnovější verzi parted
, která je k dispozici pro vaši distribuci.
Pokud je velikost disku 2 tebibajtů (TiB) nebo větší, musíte použít dělení GPT. Pokud je velikost disku pod 2 TiB, můžete použít dělení MBR nebo GPT.
Následující příklad používá parted
/dev/sdc
, což je místo, kde první datový disk bude obvykle na většině virtuálních počítačů. Nahraďte sdc
správnou možnost disku. Formátujeme ho také pomocí systému souborů XFS .
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
sudo mkfs.xfs /dev/sdc1
partprobe
Pomocí nástroje se ujistěte, že jádro ví o novém oddílu a systému souborů. Selhání použití partprobe
může způsobit, že příkazy blkid nebo lsblk okamžitě nevrátí UUID pro nový systém souborů.
Připojení disku
Nyní vytvořte adresář pro připojení systému souborů pomocí mkdir
. Následující příklad vytvoří adresář v /datadrive
:
sudo mkdir /datadrive
Slouží mount
k připojení systému souborů. Následující příklad připojí /dev/sdc1
oddíl k přípojovému /datadrive
bodu:
sudo mount /dev/sdc1 /datadrive
Zachování připojení
Aby se zajistilo, že se jednotka po restartování automaticky znovu připojí, musí se přidat do /etc/fstab
souboru. Důrazně se také doporučuje, aby identifikátor UUID (Universally Unique Identifier) odkazovat /etc/fstab
na jednotku místo názvu zařízení (například /dev/sdc1). Pokud operační systém zjistí při spouštění chybu disku, zabráníte použitím identifikátoru UUID připojení nesprávného disku do daného umístění. Zbývajícím datovým diskům by se přiřadily stejné ID zařízení. Ke zjištění UUID nového disku použijte nástroj blkid
:
sudo blkid
Výstup vypadá podobně jako v následujícím příkladu:
/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"
Poznámka:
Pokud byste soubor /etc/fstab
upravili nesprávně, může se stát, že systém nepůjde spustit. Pokud si nejste jistí, podívejte se do dokumentace k distribuci, kde najdete informace o tom, jak soubor správně upravit. Před úpravami se také doporučuje vytvořit zálohu /etc/fstab
souboru.
Potom soubor otevřete /etc/fstab
v textovém editoru. Přidejte řádek na konec souboru pomocí hodnoty UUID pro /dev/sdc1
zařízení, které bylo vytvořeno v předchozích krocích, a přípojný /datadrive
bod . V příkladu z tohoto článku by nový řádek vypadal takto:
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
Až úpravy souboru dokončíte, uložte a zavřete editor.
Případně můžete spustit následující příkaz pro přidání disku do /etc/fstab
souboru:
echo "UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2" >> /etc/fstab
Poznámka:
Pozdější odebrání datového disku bez úprav fstab může způsobit selhání spuštění virtuálního počítače. Většina distribucí poskytuje možnosti fstab typu nofail nebo nobootwait . Tyto možnosti umožňují spuštění systému, i když se disk při spuštění nepodaří připojit. Další informace o těchto parametrech najdete v dokumentaci k vaší distribuci.
Možnost nofail zajišťuje, že se virtuální počítač spustí, i když je systém souborů poškozený nebo disk v době spuštění neexistuje. Bez této možnosti můžete narazit na chování popsané v tématu Nejde SSH na virtuální počítač s Linuxem kvůli chybám FSTAB.
Sériová konzola virtuálního počítače Azure se dá použít pro přístup ke konzole k vašemu virtuálnímu počítači, pokud změna fstab způsobila selhání spuštění. Další podrobnosti jsou k dispozici v dokumentaci k sériové konzole.
TRIM/UNMAP support for Linux in Azure
Některá linuxová jádra podporují operace TRIM/UNMAP, které zahodí nepoužívané bloky na disku. Tato funkce je primárně užitečná k informování Azure, že odstraněné stránky už nejsou platné a dají se zahodit. Tato funkce může ušetřit peníze na discích, které se účtují na základě využitého úložiště, jako jsou nespravované disky úrovně Standard a snímky disků.
Existují dva způsoby povolení podpory TRIM na virtuálním počítači s Linuxem. Jako obvykle se obraťte na vaši distribuci s doporučeným přístupem:
Použijte možnost připojení v
/etc/fstab
příkladudiscard
:UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 2
V některých případech
discard
může mít tato možnost vliv na výkon. Případně můžete příkaz spustitfstrim
ručně z příkazového řádku nebo ho přidat do crontab, aby se spouštěl pravidelně:
Řešení problému
Při přidávání datových disků do virtuálního počítače s Linuxem se můžou vyskytnout chyby, pokud disk v logické jednotce 0 neexistuje. Pokud přidáváte disk ručně pomocí az vm disk attach -new
příkazu a místo toho, aby platforma Azure mohla určit příslušnou logickou jednotku(--lun
LUN), dbejte na to, aby disk již existuje nebo existoval na logické jednotce 0.
Podívejte se na následující příklad znázorňující fragment výstupu z lsscsi
:
[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd
Dva datové disky existují na logické jednotce 0 a logické jednotce 1 (první sloupec v podrobnostech výstupu lsscsi
[host:channel:target:lun]
). Oba disky by měly být přístupné z virtuálního počítače. Pokud jste ručně zadali první disk, který se má přidat na logické jednotce 1 a druhý disk na logické jednotce 2, nemusí se disky správně zobrazovat v rámci virtuálního počítače.
Poznámka:
Hodnota Azure host
je v těchto příkladech 5, ale může se lišit v závislosti na typu vybraného úložiště.
Toto chování disku není problém Azure, ale způsob, jakým jádro Linuxu dodržuje specifikace SCSI. Když jádro Linuxu prohledá sběrnici SCSI pro připojená zařízení, musí být zařízení nalezeno na logické jednotce 0, aby systém mohl pokračovat ve vyhledávání dalších zařízení. Takto:
- Zkontrolujte výstup po přidání datového
lsscsi
disku a ověřte, že máte disk na logické jednotce 0. - Pokud se disk ve virtuálním počítači nezobrazuje správně, ověřte, že disk existuje na logické jednotce 0.
Další kroky
- Pokud chcete zajistit, aby byl virtuální počítač s Linuxem správně nakonfigurovaný, projděte si doporučení k optimalizaci výkonu počítačů s Linuxem.
- Rozšiřte kapacitu úložiště přidáním dalších disků a nakonfigurujte RAID pro zvýšení výkonu.