如何将外部 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硬盘。
# 方式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 表达式,例如。
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
。
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