Sdílet prostřednictvím


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ý /datadrivebod . 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/fstabpří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 spustit fstrim ručně z příkazového řádku nebo ho přidat do crontab, aby se spouštěl pravidelně:

sudo apt install util-linux
sudo fstrim /datadrive

Ř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.