最近发现WSUS虚拟机的硬盘满了,由于是多年前用Windows Server 2012做的,正好重新做一个Windows Server 2019的WSUS,免得每次清理数据都很慢,还时不时把WSUS服务给清理挂掉。
新安好Windows Server 2019,一路下一步装好WSUS服务,经过漫长的等待,在更新了16235个补丁之后,终于可以使用了。
不过好景不长,每天频繁出现WSUS控制台连接不上,错误提示是连接错误,只能点击重置服务器节点,开始以为负载高,重启就好了,后台发现不定期就不好用,重启也重启不过来,也没啥特点,就是一堆错误日志。在应用程序日志可以看到以下日志信息:

错误日志1:来源Windows Server Update Services 事件ID 7053

WSUS 管理控制台遇到意外错误。这可能是暂时错误;请尝试重新启动该管理控制台。如果此错误仍然存在,

请尝试通过删除 %appdata%\Microsoft\MMC\ 下的 wsus 文件来删除该控制台的永久性首选项。


System.NullReferenceException -- 未将对象引用设置到对象的实例。

Source
Microsoft.UpdateServices.UI.SnapIn

Stack Trace:
   在 Microsoft.UpdateServices.UI.SnapIn.Pages.ServerSummaryPage.backgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)

错误日志2:来源Windows Server Update Services 事件ID 12072

无法访问 WSUS 内容目录。
System.Net.WebException: 远程服务器返回错误: (503) 服务器不可用。
   在 System.Net.HttpWebRequest.GetResponse()
   在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

无法访问 WSUS 内容目录。
System.Net.WebException: 远程服务器返回错误: (503) 服务器不可用。
   在 System.Net.HttpWebRequest.GetResponse()
   在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

错误日志3:来源Windows Server Update Services 事件ID 12052

DSS 身份验证 Web 服务无法正常工作。

错误日志4:来源Windows Server Update Services 事件ID 12042

简单身份验证 Web 服务无法正常工作。

错误日志4:来源Windows Server Update Services 事件ID 12022

客户端 Web 服务无法正常工作。

错误日志5:来源Windows Server Update Services 事件ID 12032

服务器同步 Web 服务无法正常工作。

错误日志6:来源Windows Server Update Services 事件ID 12012

API 远程 Web 服务无法正常工作。

错误日志7:来源Windows Server Update Services 事件ID 12002

报告 Web 服务无法正常工作。

错误日志8:来源Windows Server Update Services 事件ID 13042

自我更新无法正常工作。

错误日志9:来源Windows Server Update Services 事件ID 10032

服务器无法下载某些更新。

搜索了一下找到了解决思路,大意是,出现这个故障时,IIS中的WSsusPool应用程序池变成已停止,启动它就恢复正常了,究其原因,据说是IIS的应用程序池默认给分配的内存是1.8G内存,根据需要改大就可以了

找到IIS管理器,打开应用程序池,找到WsusPool,右侧点击高级设置,在专用内存限制项中把1843200改为4096000,也就是从1.8G改成4G,当然你内存够大也可以改成0也就是不限制。

改完以后,点击WSUS控制台各个菜单和按钮都变得十分流畅了,之前一度很卡。

Win10新版本的Hyper-V增加了一个自动检查点设定,也就是每次开启虚拟机的时候,都会自动创建一个检查点,然后下次开机会问你是否还原还是继续,如果继续,它会在后台自动合并上一个还原点,如果虚拟机超级大,会严重影响性能,所以需要关闭,根据需要来手动创建检查点。
经查阅资料,没有彻底关闭的地方,而是需要为每个虚拟机关闭该属性,命令如下

Set-VM -Name MyVM -AutomaticCheckpointsEnabled $false

将MyVM替换为你的虚拟机名称即可。

又换新服务器了,上次就想说再也不换了,结果又食言了:)
这次唯一更新的就是https证书了,以前的笑话都删掉了,今后就放这3个方向:IT运维、智能化、美食。

偶尔测试ESXi虚拟机,刚好4G内存的机器,但是安装ESXi的时候显示3.7G内存,不让安装
于是搜索了一下,解决办法如下,就是修改安装脚本,将4G内存限制修改为2G或者更小即可
注:该方法在ESXi5.x和6.0上均测试成功
首先,ESXi安装启动系统,直到出现Welcom界面,按Alt+F1
登录用户名root,密码空,直接回车
进入检查脚本的目录

#cd /usr/lib/vmware/weasel/util

删除pyc文件,下次执行更新后的upgrade_precheck.py会重新生成pyc文件

#rm upgrade_precheck.pyc

复制upgrade_precheck.py文件,并重新复制一个该文件,由于直接编辑这个文件会无法保存,所以才需要这么做

#mv upgrade_precheck.py upgrade_precheck.py.old    
#cp upgrade_precheck.py.old upgrade_precheck.py

设置新的upgrade_precheck.py文件权限为666

 #chmod 666 upgrade_precheck.py

修改检查脚本文件

#vi upgrade_precheck.py

编辑文本界面中查找 MEM_MIN

MEM_MIN_SIZE= (4*1024) 改成 MEM_MIN_SIZE= (2*1024)
wq! 强制保存退出

杀掉当前会话

#ps -c |grep weasel
#kill -9 进程ID

此时正常情况下会跳回欢迎界面,如不跳回按ALT+F2返回继续安装

自从微软出了存储池功能就在Windows Server 2012系统开始启用了这个新特性,同时Win8和Win10上也对存储池功能进行了开放,只不过桌面版不支持去重。
另一个差别就是对于存储池的处理方式不同,桌面版系统会自动挂载存储池,而默认情况下服务器版系统的存储池则只有在本机原生配置的时候会自动挂载,如果是从其他机器挪过去的存储池则不会自动挂载,比如硬件故障,将硬盘都更换到另一台服务器上,则需要配置让Windows Server 2012自动挂载该存储池。
方法也很简单,通过PowerShell命令即可打开,输入以下命令查询未自动挂载的存储池

 Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True}

会得到如下类似结果

PS C:\Windows\system32> Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
----------   -----------------     ---------------   ----------   ------------   ----
vd1          Mirror                Detached          Unknown      True           5.1 TB

输入以下命令将全部存储池设置为自动挂载

Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True} | Set-VirtualDisk –IsManualAttach $False

再次重新查询确认命令是否生效即可。