Windows 服务器维护太呕血…

2017-08-12 15:55:09 +08:00
 fox0001

公司某网站需要使用 Windows 服务器,在维护期间,需要更新补丁。然后,问题就来了…

1 )更新补丁后需要重启服务器!天啊,这是服务器,不是 PC,可以随便重启的吗?然而即使重启了,仍然提示某些补丁更新失败!!!

2 )重启后,所有服务需要有先后启动顺序。然而,并不能像 Linux 那样直接修改 service 的启动顺序。至于怎么设置启动顺序,或者依赖关系,还不知道…

天啊,大家用 Windows 服务器都没遇到这些问题的吗?我们用 CentOS 跑的网站,直到网站关闭,都没重启过。

7700 次点击
所在节点    Windows
60 条回复
fox0001
2017-08-12 20:53:55 +08:00
@anyele #37 重点是数据库…
fox0001
2017-08-12 20:54:24 +08:00
@akira #38 是,反正不是什么大型网站
swsh007
2017-08-12 20:55:21 +08:00
这不算啥,多年前 windows nt4 跑计费服务器...现在想想都可怕,关口结算就是个垃圾玩意。
不打 patch 肯定不行,但是一个强壮的策略或者企业级的防火墙是 windows server 必须安装的。
anyele
2017-08-12 21:37:47 +08:00
@fox0001 #41 SqlServer 2017 on linux
fox0001
2017-08-12 22:21:22 +08:00
@anyele #44 对于国外服务器来说,都是钱啊~而且新推出的软件,没有时间验证,不敢上
UnknownR
2017-08-13 00:33:29 +08:00
我不知道你们当初是怎么选择的 windows 服务器,大部分的 patch 和 deploy 都是要重启的,微软自家的服务器也一样,但是一般都是多台物理服务器做分流与负载均衡,要么是装在 hyper-v 上,一般步骤是测试,通告监控软件,截流,下线,打补丁,测试,上线,引流,通告监控软件,作为域内服务器,都是在半夜或者周末来更新重启的,选择一个系统和服务之前了解它的特性是必要过程
jhdxr
2017-08-13 02:38:23 +08:00
看到#37 和 #41,我觉得吧。。。楼主你不会用 windows 就还是趁早迁走比较好。不是说会用桌面版 windows 就能轻松搞定 windows 的服务器的。

顺便回答主贴问题:
1. 服务器为什么不能随便重启?重启服务器有什么问题?会造成服务中断?那么你所运行或依赖的所有环境也都是始终保证在线的?有计划有准备的服务离线不应该是正常情况吗?
2. services 里能直接配置依赖关系。还是那句话,会用 windows 桌面版不代表你就会配服务器了。Linux 是要投入精力去学的,windows 同样也是。

另外纠正 @jarlyyn,windows 才是微内核的,Linux 是(唯一的?)宏内核
fox0001
2017-08-13 06:37:52 +08:00
@UnknownR #46 选择 Windows 服务器,是历史原因。网站原来是 asp.net 写的,外加一堆 c#写的服务。后来用 Java 重新实现了,但是仍有一些存储过程、触发器和 c#服务未处理,于是仍在 Windows 上跑。你所说的部署和维护方式确实很美好,但是带来的额外成本很高(只要是国外服务器不便宜,正版软件都是钱),还不如把钱剩下来,让老板给我们加个鸡腿。
fox0001
2017-08-13 06:45:24 +08:00
@jhdxr #47 是的,我们知错了。上面说了很多,就不废话了。我们会纠正历史错误,拥抱 Linux,以及开源软件。
venster
2017-08-13 07:55:48 +08:00
你这典型的会用 Linux 就觉得天下无敌了。
fox0001
2017-08-13 08:41:14 +08:00
@venster #50 呃,实在没这个意思…纯粹吐槽一下·
0017
2017-08-13 09:18:24 +08:00
1. 一般用途的服务器窗口期更新重启 必须 24 小时在线的服务器至少要有一个热备份吧? 先停一个更新完再操作另一个

2.依赖关系设置很简单啊,一条命令就够了...
tianxiacangshen
2017-08-13 09:30:51 +08:00
我也只会用 windows

吧数据库和程序分开,然后将程序备份在临时服务器,备份的时候将域名解析到临时服务器,升级完再解析回来,这样就不会中断网站,难道这样不行吗?
msg7086
2017-08-13 11:55:49 +08:00
@jhdxr @jarlyyn 说的也不算错。
Windows 是混合内核,内核组件啊驱动啊也是运行在内核态的。微内核需要把各种组件放在用户态运行。
不能无重启更新,除了上面说的文件锁导致无法热替换以外,还因为很多核心组件是系统必不可少的部分。Linux 下的核心用户态组件,比如 init,也需要重启才能生效,只不过 Windows 下的核心用户态组件太多( GUI,桌面,SMB 等等),所以需要重启的概率大幅增加。

@fox0001 至于 Windows Server 嘛,的确不是这么用的。
我们接触的许多客户也是用的 Windows Server,比较通行的配置是配合 iSCSI SAN 做 Failover Cluster,两台或者多台服务器同时提供同样的服务,然后 Failover Cluster 会控制哪台机器接管服务 IP 与对应的磁盘组,需要维护的时候只要进控制台选择把服务 Failover 到另一个节点就行了。
虚拟化环境下的 Hyper-V Cluster 也可以 Failover,需要维护的节点直接把 VM 迁移到其他 Cluster Node 去就行了,VM 不会中断服务,连 VM 的内存数据也会同步过去的。

单机 Windows Server ?别闹了。
Showfom
2017-08-13 18:52:53 +08:00
Linux 大多数更换内核也要重启呀
akira
2017-08-13 23:24:25 +08:00
既然是小网站,那随时出个更新公告,停机更新下就是了。也不会有什么大问题的啊。
robertgenius
2017-08-14 07:13:41 +08:00
windows 更新维护还是挺方便的,你不可能把所有业务都放一台机吧,正常情况是一台主 + 一台备
cpublic
2017-08-27 13:33:48 +08:00
Windows 服务器目前看也就是“土豪”才会用的服务器端系统了!
vipcc
2019-09-29 07:52:19 +08:00
……生产环境只一台服务器????
fox0001
2019-09-29 09:29:16 +08:00
@vipcc #59 是…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/382439

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX