使用入口網站將數據磁碟連結至Linux VM

適用於:✔️ Linux VM ✔️ 彈性擴展集

本文示範如何透過 Azure 入口網站將新的及現有的磁碟連結到 Linux 虛擬機器。 您也可以在 Azure 入口網站中將資料磁碟連結到 Windows VM

必要條件

將磁碟附加至 VM 之前,請檢閱下列提示︰

  • 虛擬機器的大小會控制您可以連接的資料磁碟數目。 如需詳細資訊,請參閱 虛擬機器的大小

尋找虛擬機

執行下列步驟:

  1. 移至 Azure 入口網站尋找 VM。 搜尋並選取 [虛擬機器]

  2. 從清單中選取您想要將磁碟連結至的 VM。

  3. 在 [虛擬機] 頁面的 [設定] 下,選取 [磁盘]。

連結新的磁碟

執行下列步驟:

  1. 在位於 [資料磁碟] 下的 [磁碟] 窗格,選取 [建立並連結新磁碟]

  2. 輸入受控磁碟的名稱。 檢閱預設設定,並視需要更新 [儲存體類型]、[大小 (GiB)]、[加密] 和 [主機快取]

    檢閱磁碟設定的螢幕快照。

  3. 完成後,請選取頁面頂端的 [儲存] 以建立受控磁碟並更新 VM 組態。

連結現有的磁碟

執行下列步驟:

  1. 在 [資料磁碟] 下的 [磁碟] 窗格,選取 [連結現有的磁碟]

  2. 選取 [磁碟名稱] 的下拉式功能表,然後從可用的受控磁碟清單中選取磁碟。

  3. 選取 [儲存] 以附加現有的受控磁碟並更新 VM 組態︰

連線到Linux VM以掛接新的磁碟

若要分割、格式化和掛接新磁碟以供 Linux VM 使用,請使用 SSH 登入您的 VM。 如需詳細資訊,請參閱如何在 Azure 上搭配使用 SSH 與 Linux。 下列的範例連線至了一個公用 IP 位址為 10.123.123.25,使用者名稱為 azureuser 的 VM:

ssh azureuser@10.123.123.25

尋找磁碟

連線到 VM 之後,您需要尋找磁碟。 在此範例中,我們會使用 lsblk 來列出磁碟。

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

The output is similar to the following example:

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       4G

In this example, the disk that was added was sdc. It's a LUN 0 and is 4GB.

For a more complex example, here's what multiple data disks look like in the portal:

Screenshot of multiple disks shown in the portal.

In the image, you can see that there are 3 data disks: 4 GB on LUN 0, 16GB at LUN 1, and 32G at LUN 2.

Here's what that might look like using lsblk:

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       4G
sdd     3:0:0:1      16G
sde     3:0:0:2      32G

From the output of lsblk you can see that the 4GB disk at LUN 0 is sdc, the 16GB disk at LUN 1 is sdd, and the 32G disk at LUN 2 is sde.

Prepare a new empty disk

Important

If you are using an existing disk that contains data, skip to mounting the disk. The following instructions will delete data on the disk.

If you're attaching a new disk, you need to partition the disk.

The parted utility can be used to partition and to format a data disk.

  • Use the latest version parted that is available for your distro.
  • If the disk size is 2 tebibytes (TiB) or larger, you must use GPT partitioning. If disk size is under 2 TiB, then you can use either MBR or GPT partitioning.

The following example uses parted on /dev/sdc, which is where the first data disk will typically be on most VMs. Replace sdc with the correct option for your disk. We're also formatting it using the XFS filesystem.

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

Use the partprobe utility to make sure the kernel is aware of the new partition and filesystem. Failure to use partprobe can cause the blkid or lslbk commands to not return the UUID for the new filesystem immediately.

Mount the disk

Create a directory to mount the file system using mkdir. The following example creates a directory at /datadrive:

sudo mkdir /datadrive

Use mount to then mount the filesystem. The following example mounts the /dev/sdc1 partition to the /datadrive mount point:

sudo mount /dev/sdc1 /datadrive

To ensure that the drive is remounted automatically after a reboot, it must be added to the /etc/fstab file. It's also highly recommended that the UUID (Universally Unique Identifier) is used in /etc/fstab to refer to the drive rather than just the device name (such as, /dev/sdc1). If the OS detects a disk error during boot, using the UUID avoids the incorrect disk being mounted to a given location. Remaining data disks would then be assigned those same device IDs. To find the UUID of the new drive, use the blkid utility:

sudo blkid

The output looks similar to the following example:

/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"

Note

Improperly editing the /etc/fstab file could result in an unbootable system. If unsure, refer to the distribution's documentation for information on how to properly edit this file. You should create a backup of the /etc/fstab file is created before editing.

Next, open the /etc/fstab file in a text editor. Add a line to the end of the file, using the UUID value for the /dev/sdc1 device that was created in the previous steps, and the mountpoint of /datadrive. Using the example from this article, the new line would look like the following:

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,nofail   1   2

When you're done editing the file, save and close the editor.

Note

Later removing a data disk without editing fstab could cause the VM to fail to boot. Most distributions provide either the nofail and/or nobootwait fstab options. These options allow a system to boot even if the disk fails to mount at boot time. Consult your distribution's documentation for more information on these parameters.

The nofail option ensures that the VM starts even if the filesystem is corrupt or the disk does not exist at boot time. Without this option, you may encounter behavior as described in Cannot SSH to Linux VM due to FSTAB errors

確認磁碟

您現在可以再次使用 lsblk 來查看磁碟和掛接點。

lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"

輸出會如下所示:

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       4G
└─sdc1                4G /datadrive

您可以看到 sdc 現在已掛接在 /datadrive 上。

Azure 中 Linux 的 TRIM/UNMAP 支援

有些 Linux 核心會支援 TRIM/UNMAP 作業以捨棄磁碟上未使用的區塊。 此功能主要用於通知 Azure 已刪除的頁面已不再有效且可予以捨棄。 此功能可節省根據已取用儲存體數目計費的磁碟費用,例如非受控標準磁碟和磁碟快照集。

有兩種方式可在 Linux VM 中啟用 TRIM 支援。 像往常一樣,請參閱您的散發套件以了解建議的方法︰

  1. 在 /etc/fstab 中使用 discard 掛接選項,例如:

    ```config
    UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive   xfs   defaults,discard   1   2
    ```
    
  2. 在某些情況下,discard 選項可能會影響效能。 或者,您也可以從命令列手動執行 fstrim 命令,或將它新增到 crontab 來定期執行︰

    Ubuntu \(英文\)

    sudo apt-get install util-linux
    sudo fstrim /datadrive
    

    RHEL

    sudo yum install util-linux
    sudo fstrim /datadrive
    

    SUSE

    sudo zypper install util-linux
    sudo fstrim /datadrive