虚拟化 | 冷备份?使用外置 USB 硬盘盒磁盘挂载到 ESXi VMWare 进行虚拟机备份

2023-11-20 17:54:44 浏览数 (2)

如何将外部 USB 硬盘盒磁盘挂载到 ESXi VMWare 进行虚拟机冷备份?

描述: 由于业务需要将 ESXi 服务器中某一些虚拟机采用磁盘的方式进行冷备,然后删除原本的虚拟机为从的K8S集群环境做准备,此时准备一个USB硬盘盒以及一块4T希捷的NAS硬盘(某东八百多)如果是普通绿盘在五百左右,不得不说还是很便宜了。

通常在ESXi插上USB硬盘,都是映射给虚拟机使用,但是有些情况下我们需要提供给ESXi使用,所以直接扫描存储是无法扫描到USB硬盘的,需要做如下处理才能被识别,下面就简单看来说说操作吧,希望能帮助到需要做虚拟机传统冷备的朋友。

操作步骤:

Step 1.在ESXi或者vCenter中启动SSH服务,然后通过 SSH 连接到 ESXi 主机控制台 ;

Step 2.此时,不要插USB硬盘,接着停止 USB 仲裁器, 该服务用于 将 USB 设备从 ESXi 主机传递到虚拟机 (USB 直通)/etc/init.d/usbarbitrator stop,如果不希望 USB 仲裁器在主机重新启动后启动,请运行以下命令:chkconfig usbarbitrator off

Step 3.然后,插入USB硬盘,输入以下命令,可以看到有Is USB:true字样,表示USB设备已经识别出来。

代码语言:javascript复制
$ esxcli storage core device list |grep -i usb
   Is USB: false
   Display Name: Local USB Direct-Access (t10.ST4000VN0062D3CW104______000000000000000000000000)
   Is USB: true
   Is USB: false
   Is USB: false

Step 4.输入ls /dev/disks/命令,会列出所有的disk,确认一下是否正确识别该设备名; 此处可以看到有个设备名为t10.ST4000VN0062D3CW104______000000000000000000000000,正是我们那一块4T硬盘的NAS硬盘。

代码语言:javascript复制
# 方式1.
$ ls /dev/disks/ | grep "t10.ST4000VN0062D3CW104"
t10.ST4000VN0062D3CW104______000000000000000000000000

# 方式2.
$ fdisk -l | grep "t10.ST4000VN0062D3CW104"
fdisk: device has more than 2^32 sectors, can't use all of them
fdisk: device has more than 2^32 sectors, can't use all of them
Disk /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000: 4294967295 sectors, 4095M

Step 5.将识别出的磁盘创建为GPT (GUID) 分区表,并查看相应的扇区以及磁盘簇信息。

代码语言:javascript复制
# 创建 GPT (GUID) 分区表
partedUtil mklabel /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000 gpt

# 获取扇区信息
partedUtil getptbl /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000
gpt
486401 255 63 7814037168

Step 6.第一个扇区始终是 2048 最后一个扇区的大小是根据 getptbl 输出计算的,其计算方法如下:486401 * 255 * 63 -1 = 7814032064 或者使用 eval 表达式,例如。

代码语言:javascript复制
eval expr $(partedUtil getptbl /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000 | tail -1 | awk '{print $1 " \* " $2 " \* " $3}') - 1
# 7814032064

Step 7.使用 partedUtil 工具创建 VMFS 分区, VMFS数据存储分区的 GUID 始终为 AA31E02A400F11DB9590000C2911D1B8`),请注意后面的0是属性,不要更改。

代码语言:javascript复制
partedUtil setptbl /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000 gpt "1 2048 7814032064 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
0 0 0 0
1 2048 7814032064 AA31E02A400F11DB9590000C2911D1B8 0

Step 8.使用 vmkfstools 工具挂载 vmfs6 格式的 USB 磁盘,请注意后面带有:1

代码语言:javascript复制
mkfstools -C vmfs6 -S USB_Datastore /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000:1
  # create fs deviceName:'/dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000:1', fsShortName:'vmfs6', fsName:'USB_Datastore'
  # deviceFullPath:/dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000:1 deviceFile:t10.ST4000VN0062D3CW104______000000000000000000000000:1
  # ATS on device /dev/disks/t10.ST4000VN0062D3CW104______000000000000000000000000:1: not supported
  # .
  # Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
  # Creating vmfs6 file system on "t10.ST4000VN0062D3CW104______000000000000000000000000:1" with blockSize 1048576, unmapGranularity 1048576, unmapPriority default and volume label "USB_Datastore".
  # Successfully created new volume: 6556e219-b776d458-b97b-dc991413f938

温馨提示: -C vmfs6 表示使用 vmfs6 格式,如果在其它 esxi版本不支持 vmfs5 时可以改为 vmfs6 ,-S USB_Datastore 是存储的名字,可自行定义。

代码语言:javascript复制
# 使用 df 命令查看文件系统格式,通常设置为已挂载的磁盘格式一致,例如下面的 VMFS-6 
$ df -h
Filesystem   Size   Used Available Use% Mounted on
NFS        196.8G  87.1G    109.7G  44% /vmfs/volumes/NFS-ISO
VMFS-6     550.2G 345.5G    204.8G  63% /vmfs/volumes/ds204
VMFS-6       4.4T   3.4T    934.2G  79% /vmfs/volumes/ds204_4T
VMFS-6       3.6T   1.5G      3.6T   0% /vmfs/volumes/USB_Datastore

Step 9.至此USB_Datastore就已经创建好了,从ESXi数据存储那里就可以看到多了一个USB_Datastore名称的存储。

weiyigeek.top-USB_Datastore名称的存储图

Step 10.在迁移拷贝虚拟机文件前,我先将注册到原ESXi中的虚拟机进行取消注册,然后再使用ESXi的网页或者ESXi的ssh进行对应虚拟主机拷贝。

weiyigeek.top-取消注册图

亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?

Step 11.方式1是直接在ESXi网页平台上将虚拟机移动的新挂载的 USB_Datastore 存储中,即我们4T的硬盘,推荐方式。

weiyigeek.top-图形化操作图

Step 12.方式2是采用登录ESXi的SSH方式,通过shell命令cp或者mv将虚拟机目录拷贝或移动到新的冷备磁盘中。

weiyigeek.top-命令行操作图

Step 13.最后可通过ESXi或者vCENTER平台查看 USB_Datastore 存储设备的备份目录,备份情况。

weiyigeek.top-查看备份情况图

至此,外置磁盘冷备虚拟机实践完毕。

本文至此完毕,更多技术文章,尽情等待下篇好文!

原文地址: https://blog.weiyigeek.top

0 人点赞