今天开始第一次使用ESXi来做虚拟化应用,之前一直是使用VMware Server来实现的,听各种朋友均推荐ESXi,咱也换个口味试试。
ESXi安装很简单,下载ISO刻盘重启机器按照提示安装即可,安装完后配置下服务器IP地址和DNS地址,之后在客户机安装VMware vSphere Client即可远程连接服务器进行管理,添加、管理虚拟机,配置系统设置等。
其间一切都顺利,但在我新建虚拟机的时候出现了问题,由于我的ESXi是按照默认模式配置安装的,所以VMFS分配的硬盘块大小默认为1M,因此最大文件 大小为250GB,也就是说我分配给虚拟机的硬盘最大空间就是250GB了,这可麻烦了,由于我使用的服务器是大硬盘的,由于我打算把应用和存储存放在一 起,所以必须要为虚拟机分配约1TB的空间,后来网上找了很多资料,均说可以通过修改磁盘块大小来实现扩充虚拟机的可分配硬盘大小。
在不断尝试和总结了网上的各种资料后,发现大家都千篇一律,文章就那几篇,点来点去都是那几篇文章,可悲的中国互联网啊!那几篇文章所提出的方法针对我的 ESXi版本来说,有些不适用,但也提供了正确的思路,后来在查询综合了很多资料后自己得出结论并最终解决问题,解决方案如下:
首先要确定,修改磁盘块大小需要使用ESXi的命令行来完成,所以第一步需要先开启ESXi服务器的SSH来执行远程命令,开启方法如下:
到安装了ESXi的机器前,按F2,输入root用户名及密码后进入管理台,选中下图中的选项:
按 Enter回车键进入这项,之后可以看到开启SSH的选项,如下图:
选中这项按回车,右侧状态变为 Enable 即为开启SSH服务,实时生效。
开启SSH以后,可以使用SSH连接工具(如:putty,SecureCRT等)连接到远程ESXi服务器执行远程命令。
在这里,我需要执行的操作是修改磁盘的块大小,需要执行的是 vmkfstools 磁盘扩容命令,具体操作如下:
1.先使用 fdisk -l 命令列出所有的磁盘,并找到我们需要扩容的那块,我这里的结果如下:
~ # fdisk -l
Disk /dev/disks/naa.6001ec90d87fc100151deb07135b201e: 999.1 GB, 999116767232 bytes
64 heads, 32 sectors/track, 952832 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep1 5 900 917504 5 Extended
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep2 901 4995 4193280 6 FAT16
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep3 4996 952832 970585088 fb VMFS
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep4 * 1 4 4080 4 FAT16 <32M
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep5 5 254 255984 6 FAT16
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep6 255 504 255984 6 FAT16
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep7 505 614 112624 fc VMKcore
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep8 615 900 292848 6 FAT16
我需要执行修改的磁盘为第三块,即下面这个
/dev/disks/naa.6001ec90d87fc100151deb07135b201ep3 4996 952832 970585088 fb VMFS
执行命令如下:
vmkfstools -C vmfs3 -b 4M -S datastore1 /dev/disks/naa.6001ec90d87fc100151deb07135b201e:3
这里我需要重点补充一下,否则会误导人, 我查询到的磁盘位置为:/dev/disks /naa.6001ec90d87fc100151deb07135b201ep3 但在上面的命令中,我使用的磁盘位置是:/dev/disks/naa.6001ec90d87fc100151deb07135b201e:3 其实这也是我多次失败并不断查找原因后得出的结论。我认为这是ESXi集成的Linux环境的问题,它使用p1 p2 p3 p4结尾来标记磁盘的位置,但在执行命令的时候却不能使用这种p1 p2 p3 p4的方式,会提示找不到磁盘位置,所以这里只能按照Linux的常规办法,把p1 p2 p3 p4改写为 :1 :2 :3 :4来标记磁盘位置,这样才能被系统正确识别,这点非常重要,我在这里吃了不少亏,浪费了不少时间。
如果使用p1 p2 p3 p4这样的写法,语句如下:
vmkfstools -C vmfs3 -b 4M -S datastore1 /dev/disks/naa.6001ec90d87fc100151deb07135b201ep3
则会出现如下错误:
~ # vmkfstools -C vmfs3 -b 4M -S datastore1 /dev/disks/naa.6001ec90d87fc100151deb07135b201ep3
Device path name "/dev/disks/naa.6001ec90d87fc100151deb07135b201ep3" is not a valid absolute or relative path
Failed to resolve device name path /dev/disks/naa.6001ec90d87fc100151deb07135b201ep3
Usage: vmkfstools -C vmfs3 /vmfs/devices/disks/vml... or,
vmkfstools -C vmfs3 /vmfs/devices/disks/naa... or,
vmkfstools -C vmfs3 /vmfs/devices/disks/mpx.vmhbaA:T:L:P
Error: No such file or directory
所以,正确的写法是:
vmkfstools -C vmfs3 -b 4M -S datastore1 /dev/disks/naa.6001ec90d87fc100151deb07135b201e:3
执行后提示如下:
~ # vmkfstools -C vmfs3 -b 4M -S datastore1 /dev/disks/naa.6001ec90d87fc100151deb07135b201e:3
Checking if remote hosts are using this device as a valid file system. This may take a few seconds...
Creating vmfs3 file system on "naa.6001ec90d87fc100151deb07135b201e:3" with blockSize 4194304 and volume label "datastore1".
Successfully created new volume: 4d8b5d35-c9bc64aa-e633-001c23d9d35e
如此便把磁盘的块大小设置为4M,即最大文件1024GB。