Azure LSv3系列VM 自动挂载NVMe本地磁盘

Azure 的Lsv3 系列虚拟机具有高吞吐量、低延迟、直接映射的本地 NVMe 存储。 这些 VM 采用第三代 Intel® Xeon® Platinum 8370C (Ice Lake) 处理器。Lsv3 系列 VM 的规格从 8 到 80 个 vCPU 不等。 每个 vCPU 分配了 8 GiB 内存,每 8 个 vCPU 分配一个 1.92TB 的 NVMe SSD 设备。如下表:

大小

vCPU

本地NVMe容量

NVMe性能读取IOPS/MBps

最大云盘数量

网络带宽Gbps

L8s_v3

8

1x1.92TB

400000/2000

16

12.5

L16s_v3

16

2x1.92TB

800000/4000

32

12.5

L32s_v3

32

4x1.92TB

1.5M/8000

32

16

L48s_v3

48

5x1.92TB

2.2M/14000

32

24

L64s_v3

64

8x1.92TB

2.9M/16000

32

30

L80s_v3

80

10x1.92TB

3.8M/20000

32

32

 

由于NVMe是本地盘,在机器关机等动作时,会造成VM被重新分配到新的硬件上。在每次VM停机-启动后,Disk是新的NVMe盘,需要重新挂载。

 

这里介绍两种方式,在VM重新启动后,自动挂载。

1 采用服务的模式

创建格式化、挂载脚本,位于目录/usr/bin/mystart.sh

如果挂载点不存在,创建挂载目录;如果disk没有格式化,格式化disk并挂载,并做相应的记录:

#!/bin/sh
echo "written via startup-script" + $(date) >> /tmp/myScript.txt
[ -d /data ] || mkdir /data
sudo mount /dev/nvme0n1 /data
ret=$?
if [ $ret -ne 0 ]; then
        sudo mkfs.xfs -f /dev/nvme0n1
        sudo mount /dev/nvme0n1 /data
        echo "format and mount to the folder" >> /tmp/myScript.txt
else
        echo "mount success" >> /tmp/myScript.txt
fi

在/etc/system/system/目录下创建服务文件:

cat /etc/systemd/system/my-service.service

[Unit]
Description=My custom startup script

[Service]
ExecStart=/usr/bin/mystart.sh start

[Install]
WantedBy=multi-user.target

 

创建完成后,创建开机启动项,并启动服务:

systemctl enable my-service
systemctl start my-service


2 采用crontab中定义启动脚本模式

编辑crontab:

@reboot /usr/bin/mystart.sh

每次启动时,都运行此脚本。

3 检查

前面介绍的两种情况,分别在portal上stop VM,再start VM,模拟底层硬件更换场景,启动后,查看disk挂载情况:

 

查看脚本的日志:

 

如果在VM内部重启,VM不更换底层硬件,磁盘上的内容应该保留:

 

 

posted @ 2022-08-16 20:03  衡子  阅读(220)  评论(0编辑  收藏  举报