对大部份的VMWARE的朋友来说,在真实的VI3环境下增加一个硬盘,并且在VC下添加成VMFS卷应该不算是什么问题。因为我手头上没有VI3的真实环境,在VM6.02虚拟环境也是勉强搭建起来运行ESX SERVER。我最初安装ESX是出于对ESX的学习,刚学两星期在这方面也没有太多的经验。也就没有对整体的实验进行规划,按照VM6建Red hat虚拟系统的步骤生成虚拟系统。硬盘只分了8G。在VM下装了ESX3.0玩了两天觉得有点无聊,就试着想在ESX下安系统玩玩,才发现硬盘空间只剩下1G了。无耐只能再给ESX加一个15G的SCSI硬盘。
我的硬件:
CPU INTEL E2160(郁闷不支持VT技术)
内存 2G
硬盘 80G
HOST系统是WIN XP SP2
我的物理机上运行一个VC、VM。VC用于控制ESX,但是由于计算机硬件CPU不支持VT技术导致虚拟系统占用了全部的CPU。CPU在启动ESX开始就一直是100%的。最终造成VC无法正常使用,变成可远观而不可亵玩焉,基本上点击什么功能都是弹出错误,说什么“等待服务器响应超时”然后又是一个说什么“参考对象没有设定为一个实例的一个对象”的错误~~~~郁闷。ESC的启动也是奇慢无比,我个人比较懒也不想为了加一个硬盘上去做实验去关闭ESX等待那一个小时的启动。我想到一般的服务器都支持热插拔技术,不过好像VM不可以添加。我试过强行修改VMX配置文件添加下去也不行。
不好意思,扯远了。下边是正题:
在ESX上添加一块15G的硬盘,启动……我可怜的小U不支持VT技术,用了一个小时才启动完成。
按ALT+F1进入命令控制台
由于本人的LINUX基础不是很好,VMware会更加复杂,因为会有两种情况存在。
当对齐raw disk或者Raw Device Mapping(RDM)卷,实在虚拟主机(VM)层次上来实现对齐的。例如,在windows的虚拟主机上使用diskpar来实现对齐。对于VMFS卷,会在ESX Server的层次上使用fdisk来实现对齐,正如diskpar在VM层次。这是因为不管是ESX Server还是客户端都会把MBR放到LUN上面去。ESX必须对齐VMFS卷,而客户系统必需对其他们的虚拟磁盘。因此我只选择了使用fdisk工具来进行分区
使用fdisk –l查看系统中的磁盘分区
看到一个 Disk /dev/sdb: 16.1 GB, 16106127360 bytes的磁盘,(LINUX的磁盘设备命名方式,第一块IDE磁盘hda、第二块则是hdb以最后的一位英文字母依次递增来表示磁盘的编号。我所使用的是SCSI硬盘,所以编号为sda和sdb。Sda1是指sda的第一个文件系统=分区)下面我们先对它进行分区:
在命令提示符下输入
[root@vmware dev]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklab el
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1958.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n (#输入n参数来增加新的分区#)
Command action (#选择新建的分区类型,主分区还是扩展分区;选择p或者e#)
e extended
p primary partition (1-4)
p (#这里选择P是主要分区#)
Partition number (1-4): 1 (#添加主分区1 #)
First cylinder (1-15360, default 1): 1 (#输入开始位置,直接回车;默认为1 ,就好#)
Command (m for help): x (#输入x ,进行专家模式#)
Expert command (m for help): b (#专家行模式,输入b ,编辑bsd类型分区#)
Partition number (1-4): 1 (#添加主分区1#)
New beginning of data (1-15360, default 15360): (#输入结束位置,直接回车;默认为15360#)
Using default value 15360
Expert command (m for help): r (#输入r ,返回主菜单#)
Command (m for help): t (#输入t ,改变分区类型,系统会提示要改变哪个分区#)
Selected partition 1
Hex code (type L to list codes): fb (#输入fb ,如果想知道系统支持的分区类型列表,输入l#)
Changed system type of partition 1 to fb (Unknown)
Command (m for help): w (#输入w ,保存修改,并退出#)
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
到了这里我们再用命令查看创建出来的分区
[root@vmware dev]# fdisk –l
看到了吧.ID为fb System是Unknown的
分区创建到这里,往下走下一步
(#在()内我使用了#号里边的内容作了解释,如有错的地方请多多指教。用户通过提示键入“m”,可以显示Fdisk命令各个参数的说明。整个关键是在进入专家后的配置和分区类型一定要选择fb,fb是表示系统自动选择#)
通过把分区类型声明为fb,ESX Server会将这个分区认为一个没有被格式化的VMFS卷。你应该能够使用MUI或者vmkfstools,把一个VMFS文件系统放上去。对于Linux的虚拟主机,按照上面列出的程序步骤来做。对于windows的虚拟主机,也是按照上面的程序步骤来做。
贴两个跟LINUX分区有关的表
Fdisk分区工具的参数表:
LINUX系统支持的分区类型列表
最后一步,在这里我们要使用到VMware ESX Server-vmkfstools文件系统管理工具对vmhba0适配器上的第一个磁盘分区上创建一个文件块大小为1MB,标签为'mlyVMFS'的VMFS3文件系统.
[root@vmware dev]# vmkfstools -C vmfs3 -b 1m -S mlyVMFS vmhba0:1:0:1
这里我把整个命令拆开解释一下:
Vmkfstools (#使用Vmkfstools 工具#)
-C (#建立一个虚拟磁盘#)
Vmfs3 (#创建为VMFS3文件格式系统#)
-b 1m (#用于指定文件块大小,我这里指定为1M#)
-S mlyVMFS (#设置VMFS文件系统标签, 我这里设置成mlyVMFS#)
vmhba0:1:0:1
(#vmhba0其中第一个0表示适配器,1表示第一块目标硬盘(默认是0开始吧),0表示LUN(逻辑单位编号),1表示分区.如果这一位为0则表示整个磁盘#)
敲下命令后又开始郁闷了~~~~又等了将近一小时。在这段焦虑无比的心情下,终于看到了VM状态栏里的第二块硬盘一阵狂闪……系统提示Successfully了!!!
好,下面我用VC看一下有没有^o^ 大家一起看:
郁闷,居然没有。点击一下Refresh刷新一下。系统又弹出了那个讨厌的错误对话框说什么“等待服务器响应超时”然后又是一个说什么“参考对象没有设定为一个实例的一个对象”的错误。强行关闭VC再开碰碰运气。结果成功了。
这下心情可无比激动了,呵呵。这下可以装虚拟系统了,电脑熬了一天CPU 100%的快要崩溃了。这是本人第一次写教程,哪里写得不好的请大家在论坛中指出,千万不要砸我。谢谢
*(在使用VMware ESX Server-vmkfstools文件系统管理工具的时候有一点必须得注意的。就是要注意参数和命令的大小写,LINXU也是对输入的字符和命令有大小写要求的。否则会出错)
以下是一些VMware ESX Server-vmkfstools工具的命令行
Vmkfstools - VMware ESX Server文件系统管理工具
语法:
vmkfstools OPTIONS
vmkfstools OPTIONS PARTITION
vmkfstools OPTIONS DEVICE
vmkfstools OPTIONS PATH
vmkfstools是一个创建和维护在VMware ESX Server上的虚拟磁盘,文件系统,逻辑卷和物理存储设备的程序.他支持创建在一磁盘分区上创建VMFS,和管理保存在VMFS上的文件(如虚拟磁盘).
OPTIONS是指定操作的一个或多个命令行选项.被操作的文件或者VMFS文件系统可指定在选项后,基于/vmfs目录的相对或绝对的文件路径.
PARTITION参数用于指定分区, 应该以vmhbaA:T:L:P的形式,其中A表示适配器,T表示目标,L表示LUN(逻辑单位编号),P表示分区.P为0表示整个磁盘.
例: vmhba0:2:3:1指向第一个适配器,目标为2,LUN为3上面的第一个分区.
DEVICE参数用于指定设备,并且是一个以/vmfs/devices(设备文件系统的挂载点)开始的路径名.下面的子挂载点为每个设备.例如: /vmfs/devices/disks为本地或其于SAN的磁盘, /vmfs/devices/lvm为VMKernel逻辑卷,/vmfs/device/generic为通用SCSI设备,如磁带机,等等.
PATH参数用于指定VMFS文件系统或文件,为基于/vmfs目录下的相对或绝对路径或者文件名.
文件系统选项
长和短形式的命令选项是相等的.如:
vmkfstools -C --createfs vmfs3
-b --blocksize #[mMkK]
-S --setfsname fsName
-Z --extendfs extension-partition
deviceName
-P --queryfs -h --humanreadable
-T --tovmfs3
-x --upgradetype [zeroedthick|eagerzeroedthick|thin]
-u --upgradefinish
vmfsPath
-C, --createfs vmfs3
-b, --blocksize #[mMkK]
-S, --setfsname fsName
文件块大小通过选项-b指定,默认文件块大小为1MB,文件块大小必须为1MB,2MB,4MB或8MB.在ESX Server 3下,VMFS-2文件系统为只读的,用户不允许创建和修改.VMFS-3文件系统ESX 2.X不可用.
-s选项设置VMFS文件系统标签, 该选项只能与选项'-C'关联使用.标签可容纳128字符,头尾不能包含空格. 可通过如下命令修改已创建的文件系统标签:
ln -sf /vmfs/volumes/
/vmfs/volumes/
-Z, --extendfs 扩展分区
通过增加其它分区扩展已经存在的VMFS-3文件系统.一个VMFS-3文件系统最多可以有32个分区.该选项不能用于ESX Server 3下的VMFS-2文件系统.
-P, --queryfs
-h, --human-readable
列出当一个VMFS文件系统上有任何文件和目录时的文件系统属性,列出了VMFS版本号,构成指定VMFS文件系统的分区号,文件系统标签(如果有的话),文件系UUID,可用空间,并列出文件系统关联所有分区的设备名称.选项'-h'为可读的打印格式大小(如5k,12.1M或2.1G)
文件系统升级选项
VMFS-2升级到VMFS-3文件系统需两个步骤.升级前必须卸下`vmfs2`和`vmfs3`驱动,并装载辅助文件系统驱动程序'fsaux'.升级第一步使用'-T'选项,完成后,卸下辅助文件系统'fsaux',重新装入vmfs2和vmfs3驱动.升级第二步使用'-u'选项.
-T, --tovmfs3
-x, --pgradetype [zeroedthick|eagerzeroedthick|thin]
转换VMFS-2文件系统至VMFS-3格式,对于文件系统保存所有文件.只有文件块大小为8MB或更小的文件系统能被转换.转换是单向的,不能回滚.
-u, --upgradefinish /vmfs/volumes/
一旦文件系统升级的第一步骤完成(使用`-T`), `vmfs2`和`vmfs3`模块必须被重新装载,选项`-u`用以完成文件系统的升级.
虚拟磁盘选项
vmkfstools -c --createvirtualdisk #[gGmMkK]
-d --diskformat [zeroedthick|eagerzeroedthick|thick|thin]
-a --adapterType [buslogic|lsilogic]
-w --writezeros
-j --inflatedisk
-U --deletevirtualdisk
-E --renamevirtualdisk srcDisk
-i --clonevirtualdisk srcDisk
-d --diskformat [rdm:|rdmp:|raw:|thin|2gbsparse|monoflat|monosparse]
-X --extendvirtualdisk #[gGmMkK]
-M --migratevirtualdisk
-r --createrdm /vmfs/devices/disks/...
-q --queryrdm
-z --createrdmpassthru /vmfs/devices/disks/...
-v --verbose #
-g --geometry
-J --miscop [setuuid | getuuid]
vmfsPath
-c, --createvirtualdisk #[gGmMkK]
-a, --adaptertype [buslogic|lsilogic] srcFile
-d, --diskformat [zeroedthick|eagerzeroedthick|thick|thin]
在VMFS文件系统上以指定大小创建一虚拟磁盘.大小选项默认单位为字节,但可以分别通过后缀'k','m',或'g'指定为kb,Mb或Gb.'adaptertype'选项允许用户去指定使用哪种设备驱动程序与虚拟磁盘通讯.'-d'选项表示虚拟磁盘格式.默认磁盘格式为'zeroedthick'.具体详见'SUPPORTED DISK FORMATS'章节.
-U, --deletevirtualdisk
删除指定虚拟磁盘以及关联的文件.
-E, --renamevirtualdisk srcDisk
重命名指定虚拟磁盘关联的文件名称。
-i, --clonevirtualdisk srcDisk
-d, --diskformat [rdm:|rdmp:|raw:|thin|2gbsparse|monosparse|monoflat]
创建虚拟磁盘或raw磁盘的一个拷贝(克隆).
-e, --exportvirtualdisk dstDisk
不赞成该操作.可以使用'-i srcDisk -d 2gbsparse'达到相同效果.
-x, --extendvirtualdisk #[gGmMkK]
扩展指定的VMFS虚拟盘至指定的大小.
-M, --migratevirtualdisk
迁移ESX2虚拟磁盘到ESX3虚拟磁盘.
-r, --createrdm /vmfs/devices/disks/...
在VMFS文件系统上影射一个raw磁盘到一个文件.一旦影射被确定,可以象控制一个普通的VMFS虚拟磁盘一样控制raw磁盘.
-q, --queryrdm
列出关于raw磁盘影射的属性.
-z, --createdmpassthru /vmfs/devices/disks/...
在VMFS文件系统上影射一个passthrougn raw磁盘到一个文件.这允许虚拟机器跳过 VMKernel SCSI命令过虑的没用的VMFS虚拟磁盘.
-v, --verbose #
-g, --geometry
获取虚拟磁盘物理信息(柱面,磁头数,扇区)
-w, --writezeros
虚拟磁盘写0.原存储的数据丢失.
-j, --inflatedisk
转换一个thin虚拟磁盘到预分配大小.原来数据和块会受到保护.
-J, --miscop [setuuid | getuuid]
'setuuid'选项为虚拟磁盘创建一个唯一的标识符(UUID),并保存UUID在虚拟磁盘的一个描述文件里.如果描述文件中已包含一个UUID,将被新的覆盖.请确保虚拟磁盘没有一个UUID才使用该项.'getuuid'项将显示虚拟磁盘的UUID.
例子:
vmkfstools -C vmfs3 -b 1m -S myVMFS vmhba1:3:0:1
在vmhba适配器1,目标3,LUN编号0上的第一个磁盘分区上创建一个文件块大小为1MB,标签为'myVMFS'的VMFS3文件系统
vmkfstools -Z vmhba0:1:2:4 vmhba1:3:0:1
扩展分区,原来文件系统将跨越两个分区.vmhba0:1:2:4 和vmhba1:3:0:1.在这里vmhba1:3:0:1是做为文件系统的头部分区得到了扩展.
vmkfstools -c 2048m /vmfs/volumes/myVMFS/myOS.vmdk
在名为'myVMFS'的VMFS文件系统上创建一个文件名为'myOS.vmdk'的,容量大小为2GB的VMFS虚拟磁盘.