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)】后点击【选项】。
选择【自动启动】,并点击【启动】
ESXi主机SNMP开启
1、开启ssh后,登录编辑ESXi主机上的/etc/vmware/snmp.xml的文件
格式如下:
<config>
<snmpSettings>
<communities>【community值】</communities>
<enable>【true/false】</enable>
<targets>【snmp trap接收服务器】 【共享的community值】</targets>
</snmpSettings>
</config>
~ # cat /etc/vmware/snmp.xml
<?xml version="1.0"?>
<config><snmpSettings><enable>true</enable><port>161</port><EnvEventSource>indications</EnvEventSource><loglevel>info</loglevel><communities>public</communities><targets>10.15.97.195@161 public</targets><engineid>00000063000000a100000000</engineid></snmpSettings></config>
~ #
true表示开启SNMP服务,public表示的是snmp的团体名,192.168.1.247@161 public表示该snmp使用161端口,其中表示的192.168.1.247esxi的管理IP地址。这个ip也可以不指定,保持默认。
2、登陆esxi开启snmp服务,如果没配置snmp.xml就启动可能会提示你调用对象 “serviceSystem-1209”的“HostServiceSystem.Start” 失败。
以上修改完毕后,需要使用以下命令启动:
/sbin/services.sh restart
执行该命令后,SSH、vsphere连接都可能会断开,然后就可以通过snmp获取信息了
通过命令设置:
esxcli system snmp set --communities public
esxcli system snmp set --enable true
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true ####允许所有主机访问snmp服务
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
/etc/init.d/snmpd restart
####如果要只允许特定的IP地址访问snmp服务
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 10.0.101.0/24
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
/etc/init.d/snmpd restart
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 -K(大写) Mysql3.vmdk #vmkfstools --punchzero 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. 1 虚拟磁盘类型转换,thick to thin
2.
3. vmkfstools 命令格式
4. # vmkfstools -i<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk>
5. 参数解释:
6. -i <source-disk-name.vmdk>参数:原vmdk磁盘名
7. -d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名;
8.
9. 1.1 进入虚拟机所在的datastore目录,每个目录为一个虚拟机
10. ~ # cd /vmfs/volumes/datastore1
11. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # ls
12. cobbler-5.85 converter-two-57.72 datanode2-57.78
13. converter-four-57.74 converter-win-xp ovf-cos-5.7
14.
15. 1.2 此次转换的虚拟机为converter-two-57.72,进入该虚拟机目录
16. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404 # cd converter-two-57.72/
17. /vmfs/volumes/4f3cedd3-1b48e924-3d7d-0022195a4404/converter-two-57.72 # du -sh *
18. 20.0G converter-two-flat.vmdk
19. 64.0k converter-two.nvram
20. 64.0k converter-two.vmdk
21. 0 converter-two.vmsd
22. 64.0k converter-two.vmx
23. 64.0k converter-two.vmxf
24. 64.0k vmware-4.log
25. 1.0M vmware-5.log
26. 1.0M vmware-6.log
27. 1.0M vmware-7.log
28. 1.0M vmware-8.log
29. 64.0k vmware-9.log
30. 64.0k vmware.log
31.
32.
33. 1.3 需要注意:转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,
34. 存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件
35.
36. 1.4 开始转换
37. 1.4.1 使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件,转换磁盘完成后将生成两个新的vmdk和flat.vmdk文件
38. /vmfs/..../converter-two-57.72 # vmkfstools -i converter-two.vmdk -d thin converter-two_new.vmdk
39. Destination disk format: VMFS thin-provisioned
40. Cloning disk 'converter-two.vmdk'...
41. Clone: 100% done.
42.
43. /vmfs/..../converter-two-57.72 # du -sh *
44. 20.0G converter-two-flat.vmdk
45. 64.0k converter-two.nvram
46. 64.0k converter-two.vmdk
47. 0 converter-two.vmsd
48. 64.0k converter-two.vmx
49. 64.0k converter-two.vmxf
50. 7.9G converter-two_new-flat.vmdk
51. 64.0k converter-two_new.vmdk
52. 64.0k vmware-4.log
53. 1.0M vmware-5.log
54. 1.0M vmware-6.log
55. 1.0M vmware-7.log
56. 1.0M vmware-8.log
57. 64.0k vmware-9.log
58. 64.0k vmware.log
59.
60. 1.4.2 将原来的厚模式磁盘文件vmdk和flat.vmdk文件备份
61. /vmfs/..../converter-two-57.72 # mv converter-two.vmdk converter-two_old.vmdk
62. /vmfs/..../converter-two-57.72 # mv converter-two-flat.vmdk converter-two-flat_old.vmdk
63.
64. 1.4.3 将新生成的vmdk和flat.vmdk磁盘文件分别重命名为原有磁盘名称
65. /vmfs/..../converter-two-57.72 # mv converter-two_new.vmdk converter-two.vmdk
66. /vmfs/..../converter-two-57.72 # mv converter-two_new-flat.vmdk converter-two-flat.vmdk
67.
68. 1.4.4 编辑 vmdk 文件,确保 # Extent description "converter-two-flat.vmdk" 为原有磁盘名称
69. /vmfs/..../converter-two-57.72 # cat converter-two.vmdk
70. # Disk DescriptorFile
71. version=1
72. encoding="UTF-8"
73. CID=9cad19cd
74. parentCID=ffffffff
75. isNativeSnapshot="no"
76. createType="vmfs"
77.
78. # Extent description
79. RW 41932416 VMFS "converter-two_new-flat.vmdk"
80.
81. # The Disk Data Base
82. #DDB
83.
84. ddb.deletable = "true"
85. ddb.toolsVersion = "0"
86. ddb.geometry.biosHeads = "255"
87. ddb.geometry.biosSectors = "63"
88. ddb.geometry.biosCylinders = "2610"
89. ddb.virtualHWVersion = "7"
90. ddb.longContentID = "364b422b2ceb3f6f0a4e88d09cad19cd"
91. ddb.uuid = "60 00 C2 94 89 93 59 2c-d9 22 d3 e4 e6 b3 a4 22"
92. ddb.geometry.cylinders = "2610"
93. ddb.geometry.heads = "255"
94. ddb.geometry.sectors = "63"
95. ddb.thinProvisioned = "1"
96. ddb.adapterType = "lsilogic"
97.
98. 1.4.5 启动虚拟机检查是否工作正常,对比精简置备与厚置备大小
99. /vmfs/..../converter-two-57.72 # du -sh *500.0M converter-two-326dc793.vswp
100. 7.9G converter-two-flat.vmdk
101. 20.0G converter-two-flat_old.vmdk
102. 64.0k converter-two.nvram
103. 64.0k converter-two.vmdk
104. 0 converter-two.vmsd
105. 64.0k converter-two.vmx
106. 64.0k converter-two.vmxf
107. 64.0k converter-two_old.vmdk
108. 64.0k vmware-10.log
109. 64.0k vmware-11.log
110. 1.0M vmware-6.log
111. 1.0M vmware-7.log
112. 1.0M vmware-8.log
113. 64.0k vmware-9.log
114. 64.0k vmware.log
115.
116. 1.5 其它方式
117. 精简置备转换至厚置备置零:
118. vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk
119. 厚置备延迟置零转换至厚置备置零:
120. vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk
121.
122.
123. 2 更改虚拟磁盘(vmdk)大小
124. 要特別注意的是,如果此虚拟机已有快照,请先删除所有快照在执行以下操作,否则这个VMDK将出错,內部的资料丢失!!!!
125.
126. 2.1 vmkfstools 命令格式
127. vmkfstools -X [新的大小] [目的vmdk文件]
128. 2.2 当前虚拟机虚拟磁盘大小
129. [root@bz-cl2 ~]# fdisk -l /dev/sda
130.
131. Disk /dev/sda: 21.4 GB, 21469396992 bytes
132. 255 heads, 63 sectors/track, 2610 cylinders
133. Units = cylinders of 16065 * 512 = 8225280 bytes
134.
135. 2.3 关闭虚拟机,登陆ESXI 调整虚拟磁盘大小
136. /vmfs/..../converter-two-57.72 # vmkfstools -X 40g converter-two.vmdk
137.
138. 2.4 开启虚拟机,验证虚拟磁盘大小
139. [root@bz-cl2 ~]# fdisk -l /dev/sda
140.
141. Disk /dev/sda: 42.9 GB, 42949672960 bytes
142. 255 heads, 63 sectors/track, 5221 cylinders
143. Units = cylinders of 16065 * 512 = 8225280 bytes