ESXi 5.5是直接安装在物理主机上的一个虚拟机系统,本质上是一个Linux系统。平时可以通过VMware Client端或者VMware vCenter进行管理,但对于一些特殊的VMware命令或设置更改,有时需要连接到VMware主机进行操作,这就需要ESXi主机的ssh是开通的。由于ESXi主机是创建虚拟机的基础,非常重要,所以默认安装了ESXi后,默认ssh服务是关闭着的,而且一旦开启,在vCenter里面也会出现ssh已开启的警告,以说明目前ESXi主机处于一个相对有安全风险的状态。
ESXi主机ssh开启
一、 在ESXi主机的控制台进行设置
进入系统设置界面,如下图所示,向下移动光标到Troubleshooting Options,按回车。
然后进入如下图所示的界面,然后把光标向下移动到Enable Remote Tech Support(SSH)启用远程连接,如果右边显示Remote TSM (SSH) is Disabled则按一次回车,右侧就会显示Remote TSM (SSH) is Enable。
最后按ESC键退出就可以通过SSH客户端来远程连接了。
二、 通过vSphere进行设置
在vSphere Client中选中ESXi服务器,点击右面的【配置】>【安全配置文件】>【属性】
在【服务属性】画面中,选择【远程技术支持(SSH)】后点击【选项】。
选择【自动启动】,并点击【启动】
Thin磁盘空间回收
最近3个月一台ESXI服务器里的mysql从库挂了两次,两次都是因为宿主机空间不足,导致从库的文件加载不了,最近一次查看了下磁盘使用情况,宿主机磁盘空间为0,一台server2008占用了133G左右,mysql从占用了将近380G,进入系统发现只用了100多G,在创建虚拟机时候选的都是精简模式:
厚置备延迟置零(zeroed thick):以默认的厚格式创建虚拟磁盘。创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零。
厚置备置零 (eager zeroed thick):创建支持群集功能(如 Fault Tolerance)的厚磁盘。在创建时为虚拟磁盘分配所需的空间。与zeroed thick相反,在创建过程中会将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。
精简置备(thin):使用精简置备格式。最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量。
在创建mysql从虚机的时候,我指定的是500G的空间,但是由于使用了thin的方式,可能实际上只分配了200GB的空间(还有300GB的空间预留着,并没有从存储上真正分出去)。但后来随着mysql从文件越来越多,使用了400GB,那这时候我发现空间不够了,我删了100GB的空间,其实这100GB空间并没有完全空闲出来,还是真正划分给了mysql从虚机。这是因为这个delete操作是在guest OS中进行的,而hypervisor并不知道这个动作,所以也就不会reclaim space。所以,我们会发现虽然在创建虚机的时候使用thin的方式,但是到后来后端存储空间还是消耗的很快。对于ESXi可以使用vmkfstools这个工具将空间清理出来。
注意事项:
1、操作前请先关闭虚拟机
2、操作前需要打开ESXI ssh 服务,并需要登陆到ESXI ,进入虚拟机所在的datastore目录,每个目录为一个虚拟机
~ # cd /vmfs/volumes/datastore1\ \(8\)/ /vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c # ls Mysql3 ser08 soft /vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c # cd Mysql3/
需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件
/vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c/Mysql3 # vmkfstools --punchzer o Mysql3.vmdk vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576 Hole Punching: 100% done. /vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c/Mysql3 # du -sh * 64.0G Mysql3-8c9d0a22.vswp 315.9G Mysql3-flat.vmdk 1.0M Mysql3.nvram 0 Mysql3.vmdk 0 Mysql3.vmsd 8.0K Mysql3.vmx 0 Mysql3.vmx.lck 0 Mysql3.vmxf 8.0K Mysql3.vmx~ 1.0M vmware-1.log 1.0M vmware-2.log 1.0M vmware.log 141.0M vmx-Mysql3-2359101986-1.vswp /vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c/Mysql3 #
vmkfstools是一个创建和维护在VMware ESX Server上的虚拟磁盘,文件系统,逻辑卷和物理存储设备的程序.他支持创建在一磁盘分区上创建VMFS,和管理保存在VMFS上的文件(如虚拟磁盘).
/vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c/Mysql3 # vmkfstools --h vmkfstools: option '--h' is ambiguous OPTIONS FOR FILE SYSTEMS: vmkfstools -C --createfs [vmfs3|vmfs5] -b --blocksize #[mMkK] -S --setfsname fsName -Z --spanfs span-partition -G --growfs grown-partition deviceName -P --queryfs -h --humanreadable -T --upgradevmfs vmfsPath -y --reclaimBlocks vmfsPath [--reclaimBlocksUnit #blocks] OPTIONS FOR VIRTUAL DISKS: vmkfstools -c --createvirtualdisk #[gGmMkK] -d --diskformat [zeroedthick |thin |eagerzeroedthick ] -a --adaptertype [buslogic|lsilogic|ide |lsisas|pvscsi] -W --objecttype [file|vsan] --policyFile <fileName> -w --writezeros -j --inflatedisk -k --eagerzero -K --punchzero -U --deletevirtualdisk -E --renamevirtualdisk srcDisk -i --clonevirtualdisk srcDisk -d --diskformat [zeroedthick |thin |eagerzeroedthick |rdm:<device>|rdmp:<device> |2gbsparse] -W --object [file|vsan] --policyFile <fileName> -N --avoidnativeclone -X --extendvirtualdisk #[gGmMkK] [-d --diskformat eagerzeroedthick] -M --migratevirtualdisk -r --createrdm /vmfs/devices/disks/... -q --queryrdm -z --createrdmpassthru /vmfs/devices/disks/... -v --verbose # -g --geometry -x --fix [check|repair] -e --chainConsistent -Q --objecttype name/value pair --uniqueblocks childDisk vmfsPath OPTIONS FOR DEVICES: -L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv ] /vmfs/devices/disks/... -B --breaklock /vmfs/devices/disks/... vmkfstools -H --help /vmfs/volumes/55b99e39-9c3650d8-20a4-3ca82a23c98c/Mysql3 #
虚拟磁盘类型转换(thick to thin )
没有机器用来做实验,这里应用ngood的BLOG文章VMware ESXI 虚拟磁盘工具 - vmkfstools 使用实例
1 虚拟磁盘类型转换,thick to thin
vmkfstools 命令格式
# vmkfstools -i<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk>
参数解释:
-i <source-disk-name.vmdk>参数:原vmdk磁盘名
-d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名;
1.1 进入虚拟机所在的datastore目录,每个目录为一个虚拟机
~ # cd /vmfs/volumes/datastore1
/vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # ls
cobbler-5.85 converter-two-57.72 datanode2-57.78
converter-four-57.74 converter-win-xp ovf-cos-5.7
1.2 此次转换的虚拟机为converter-two-57.72,进入该虚拟机目录
/vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # cd converter-two-57.72/
/vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404/converter-two-57.72 # du -sh *
20.0G converter-two-flat.vmdk
64.0k converter-two.nvram
64.0k converter-two.vmdk
0 converter-two.vmsd
64.0k converter-two.vmx
64.0k converter-two.vmxf
64.0k vmware-4.log
1.0M vmware-5.log
1.0M vmware-6.log
1.0M vmware-7.log
1.0M vmware-8.log
64.0k vmware-9.log
64.0k vmware.log
1.3 需要注意:转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,
存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件
1.4 开始转换
1.4.1 使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件,转换磁盘完成后将生成两个新的vmdk和flat.vmdk文件
/vmfs/..../converter-two-57.72 # vmkfstools -i converter-two.vmdk -d thin converter-two_new.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk 'converter-two.vmdk'...
Clone: 100% done.
/vmfs/..../converter-two-57.72 # du -sh *
20.0G converter-two-flat.vmdk
64.0k converter-two.nvram
64.0k converter-two.vmdk
0 converter-two.vmsd
64.0k converter-two.vmx
64.0k converter-two.vmxf
7.9G converter-two_new-flat.vmdk
64.0k converter-two_new.vmdk
64.0k vmware-4.log
1.0M vmware-5.log
1.0M vmware-6.log
1.0M vmware-7.log
1.0M vmware-8.log
64.0k vmware-9.log
64.0k vmware.log
1.4.2 将原来的厚模式磁盘文件vmdk和flat.vmdk文件备份
/vmfs/..../converter-two-57.72 # mv converter-two.vmdk converter-two_old.vmdk
/vmfs/..../converter-two-57.72 # mv converter-two-flat.vmdk converter-two-flat_old.vmdk
1.4.3 将新生成的vmdk和flat.vmdk磁盘文件分别重命名为原有磁盘名称
/vmfs/..../converter-two-57.72 # mv converter-two_new.vmdk converter-two.vmdk
/vmfs/..../converter-two-57.72 # mv converter-two_new-flat.vmdk converter-two-flat.vmdk
1.4.4 编辑 vmdk 文件,确保 # Extent description "converter-two-flat.vmdk" 为原有磁盘名称
/vmfs/..../converter-two-57.72 # cat converter-two.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=9cad19cd
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"
# Extent description
RW 41932416 VMFS "converter-two_new-flat.vmdk"
# The Disk Data Base
#DDB
ddb.deletable = "true"
ddb.toolsVersion = "0"
ddb.geometry.biosHeads = "255"
ddb.geometry.biosSectors = "63"
ddb.geometry.biosCylinders = "2610"
ddb.virtualHWVersion = "7"
ddb.longContentID = "364b422b2ceb3f6f0a4e88d09cad19cd"
ddb.uuid = "60 00 C2 94 89 93 59 2c-d9 22 d3 e4 e6 b3 a4 22"
ddb.geometry.cylinders = "2610"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.thinProvisioned = "1"
ddb.adapterType = "lsilogic"
1.4.5 启动虚拟机检查是否工作正常,对比精简置备与厚置备大小
/vmfs/..../converter-two-57.72 # du -sh *500.0M converter-two-326dc793.vswp
7.9G converter-two-flat.vmdk
20.0G converter-two-flat_old.vmdk
64.0k converter-two.nvram
64.0k converter-two.vmdk
0 converter-two.vmsd
64.0k converter-two.vmx
64.0k converter-two.vmxf
64.0k converter-two_old.vmdk
64.0k vmware-10.log
64.0k vmware-11.log
1.0M vmware-6.log
1.0M vmware-7.log
1.0M vmware-8.log
64.0k vmware-9.log
64.0k vmware.log
1.5 其它方式
精简置备转换至厚置备置零:
vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk
厚置备延迟置零转换至厚置备置零:
vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk
2 更改虚拟磁盘(vmdk)大小
要特�e注意的是,如果此虚拟机已有快照,请先删除所有快照在执行以下操作,否则这个VMDK将出错,�炔康淖柿隙�失!!!!
2.1 vmkfstools 命令格式
vmkfstools -X [新的大小] [目的vmdk文件]
2.2 当前虚拟机虚拟磁盘大小
[root@bz-cl2 ~]# fdisk -l /dev/sda
Disk /dev/sda: 21.4 GB, 21469396992 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
2.3 关闭虚拟机,登陆ESXI 调整虚拟磁盘大小
/vmfs/..../converter-two-57.72 # vmkfstools -X 40g converter-two.vmdk
2.4 开启虚拟机,验证虚拟磁盘大小
[root@bz-cl2 ~]# fdisk -l /dev/sda
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes