ESX SERVER
命令控制台添加
VMFS
LeeSun
2008-1-25
今天忙呼了一下午,在
WS
的折磨下几经周折把
VMFS
在
ESX SERVER
的命令控制台下添加成功。整个过程也没什么技术含量,高手看了希望能帮忙指导下我的错误,对新手来说应该还是有用的吧。面我就把过程
我把整个过程都记录下来与大家分享下:
对大部份的
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 �Cl
查看系统中的磁盘分区
看到一个
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 �Cl
看到了吧
.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/
device
s(
设备文件系统的挂载点
)
开始的路径名
.
下面的子挂载点为每个设备
.
例如
: /vmfs/
device
s/disks
为本地或其于
SAN
的磁盘,
/vmfs/
device
s/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/<FS UUID> /vmfs/volumes/<New label>
-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/<file system label|file system UUID>
一旦文件系统升级的第一步骤完成
(
使用
`-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:<device>|rdmp:<device>|raw:<device>|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:<device>|rdmp:<device>|raw:<device>|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
虚拟磁盘
.