+ -
当前位置:首页 → 问答吧 → 请问:用arch当服务器的,一般会碰到什么问题?

请问:用arch当服务器的,一般会碰到什么问题?

时间:2009-12-11

来源:互联网

最近脑子发热,想用arch来当服务器(不是自己家里用的,放机房的),就是不太清楚这么做意味着什么,充满未知感觉。
主机用arch应该没问题,网络服务部分放kvm虚拟机里,虚拟机也用arch???——这点最让我迷茫的。

为了知己知彼、防范于未然,特来问问各位:
坛子上一般把arch当服务器用的,都碰到过什么特殊的问题?这些问题大家又是怎么解决的呢?

比如:
1、系统升级:肯定不能完全跟着系统升了,只能固定在某个版本,那么以后的升级,主要还是安全类的更新,就一定要全靠自己编译了。那么这么做,是不是太考验网络管理员的水平了?而且,管理所需的时间是不是会因此大幅度增加呢?——将来肯定不是我管理,将来的管理人员如何,我只能用下限来假定,总不能假定将来的网络管理员会水平很高吧?

2、是否需要自己架设软件源服务器?——服务器用到的软件实在不多,就那么几个,或许可以虚拟机里搞一个,专门用于编译软件,用来专门针对自己虚拟机里的那个arch?

3、假设遭遇需要重装的情况,比如整个系统给毁了:当然,数据不在此处。那么原来的那些系统软件肯定也是在arch源里找不到了,只能靠我自己架设的另一个专供的软件源了???

目前只能想到这么多:专供软件源好像比较必须,但如果那样的话,是不是可以大家一起,搞个专供版本呢?只提供服务器稳定版本的软件,专门针对服务器的?

作者: jobinson99   发布时间: 2009-12-11

建议还是不要用arch,你这不是自己找折腾么

作者: channon   发布时间: 2009-12-11

debian(stable)、centos不是很好的选择么

作者: channon   发布时间: 2009-12-11

有个arch server项目。

其实只要不开testing,软件遇到打包的问题很少,如果不跟着更新干嘛要用arch当服务器呢。。

作者: jarryson   发布时间: 2009-12-11

看看:
http://bbs.archlinux.org/viewtopic.php?id=55706

将来的网络管理员水平可以不高,但只要善于和社区打交道,就没有解决不了的问题。

作者: cwjiof   发布时间: 2009-12-11

一定要用就别频繁升级

一般来说,有那么多好的选择,比如Debian/Ubuntu Server,OEL/CentOS等,没必要一定得用某个发行版。服务器稳定第一。

作者: 至尊宝   发布时间: 2009-12-12

我觉得,服务器所谓的“稳定”要求,其实是“好维护”的要求,而不是稳定。
看看小公司的网站,看看他们所用的服务器软件,但哪个真的稳定了?即使是很简单的服务器,都能问题迭出的。
这里面管理员的负责任程度是很重要的因素,再好的家,也敌不住媳妇的懒惰打理啊。

那么,如何“好维护”呢?
系统要简单明了,条理清晰,不复杂。arch相比较这方面比较优秀。
图形化也是一种方式,但这样往往会因为环境原因,而不能实现。
不需要经常大的更新:这方面,关了更新的arch应该也算,但这样变成无更新了。这方面arch有落差的。不过archlinux上的人说了,只要更新前注意下arch社区,还是可以避免更新出大问题的。
不过,由更新方面带来的问题,相对于中国人来说,各个发行版都是一样的。或许用debian或centos的人根本就没关心过某次更新的具体内容,然后就直接更新了,这样的更新,里面也隐含了不稳定因素的:比如,没法确定官方的更新就恰好符合你的设备(再怎么大量测试也是有限的,难免例外)。

归根结底,问题好像不是在于选了哪个发行版,而是选了哪个管理员……

作者: jobinson99   发布时间: 2009-12-12

其实,我很希望能够看见有个用Arch搭建一个Server出来的指南。
正好学学生产环境下的诸多事项。平时都是捣鼓桌面用户下的需求,眼界太小了。

作者: dickeny   发布时间: 2009-12-12

因为错误都是人犯的,而软件编写者,打包者,服务器管理员三者中以管理员技术最弱,所以服务器维护的原则应该是,管理员参与度越低越好。

debian 之所以广泛应用在各个数据中心,就是 debian 社区制定了一系列原则,保证在遵守规则的情况下,一个水平一般的管理员也可以使系统正常运行。反映到软件上,就是 debian 看起来不够简洁,也有一些自己专有的修改。

arch 的用户参与度即使不算最高,也只比 gentoo 差一点,而且是 arch 哲学的一部分。管理员水平高的话,能弥补一些。泛泛的说,是不合适做服务器的。

作者: AutoXBC   发布时间: 2009-12-12

什么版本适合服务器,取决于你赋予服务器什么样的定义。

传统定义的服务器是:从诞生安装好开始,除因极其特殊原因(例如停电同时遇到UPS故障,或者由于管理员的操作错误造成机器必须重启,或者修复一个非常急需的内核级漏洞),应当是永远不关机不重启的。

基于这个原因,传统的教程中让你在服务器上启动一个服务进程,都是直接让你后台运行,而不是让你改 rc.local 之类的启动脚本。因为服务器几乎没有什么机会去调用启动脚本,而服务器的每次重启,通常都需要有管理员维护,因为需要手工启动一些服务。

这个特性还造成了几点:
1。为了不关机,服务器尽量减少外设消耗,只插一根电源和网线。一个机房一般提供少量的显示器和鼠标用于紧急即可,大量的服务器仅仅只是一个主机。
2。人为的操作经常容易造成失误,尤其是图形界面更是如此。为了尽量减少人为操作带来的问题,减少直接物理接触服务器的可能,服务器不直接提供终端,只提供远程访问,提供图形界面对服务器来说一般是意义不大的。因为服务器一般应当锁定在机房,并严格进行门禁管理。
3。为了不关机,服务器的大量外设被设计为热插拔,例如RAID5技术就是设计为其损坏的硬盘可以热插拔并且热替换的。服务器无需关机重启。
4。由于服务器通常是不关机的,所以内核更新和驱动更新一般意义不大,通常只需要基于核心应用的安全更新即可。版本升级完全没有必要,对于bugfix更新,通常管理员要负责检查其更新的内容,如果这个更新是业务所需要的,则进行,否则不进行更新。

一句话,服务器基本原则是“不折腾”,并且所有对服务器的设置都要为实现“不折腾”而服务。

脱离了最先的那个假设,你对服务器的需求就可能完全完全不同,那么你对发行版的选择也就完全不同了。

--
其实很多人对服务器的理解并不准确,服务器硬件的存在是为了提供专业的稳定可靠的服务,而如果你只是在自己的桌面机上启动一些服务,这并不意味着你是一个服务器,或者说,如果你只是在上班时间需要提供服务,其他时间均可关闭,那么你用自己的桌面机就可以了,并不需要一个服务器。——就好比,如果你为了卖点商品,可以只是开个网店,也可以只是注册个体工商户,根本没有必要去搞一个上市公司并修一个写字楼。公司和写字楼是用来经商的,但经商并非一定要这些。——服务器是用来提供服务的,但如果你要提供一些简单的可间断的服务,并不需要维护一台服务器。

作者: poet   发布时间: 2009-12-14

上次看到源里有kernel26-lts内核,不那么频繁更新的

作者: sanitizer84   发布时间: 2009-12-14

引用:
作者: poet
什么版本适合服务器,取决于你赋予服务器什么样的定义。

传统定义的服务器是:从诞生安装好开始,除因极其特殊原因(例如停电同时遇到UPS故障,或者由于管理员的操作错误造成机器必须重启,或者修复一个非常急需的内核级漏洞),应当是永远不关机不重启的。

基于这个原因,传统的教程中让你在服务器上启动一个服务进程,都是直接让你后台运行,而不是让你改 rc.local 之类的启动脚本。因为服务器几乎没有什么机会去调用启动脚本,而服务器的每次重启,通常都需要有管理员维护,因为需要手工启动一些服务。

这个特性还造成了几点:
1。为了不关机,服务器尽量减少外设消耗,只插一根电源和网线。一个机房一般提供少量的显示器和鼠标用于紧急即可,大量的服务器仅仅只是一个主机。
2。人为的操作经常容易造成失误,尤其是图形界面更是如此。为了尽量减少人为操作带来的问题,减少直接物理接触服务器的可能,服务器不直接提供终端,只提供远程访问,提供图形界面对服务器来说一般是意义不大的。因为服务器一般应当锁定在机房,并严格进行门禁管理。
3。为了不关机,服务器的大量外设被设计为热插拔,例如RAID5技术就是设计为其损坏的硬盘可以热插拔并且热替换的。服务器无需关机重启。
4。由于服务器通常是不关机的,所以内核更新和驱动更新一般意义不大,通常只需要基于核心应用的安全更新即可。版本升级完全没有必要,对于bugfix更新,通常管理员要负责检查其更新的内容,如果这个更新是业务所需要的,则进行,否则不进行更新。

一句话,服务器基本原则是“不折腾”,并且所有对服务器的设置都要为实现“不折腾”而服务。

脱离了最先的那个假设,你对服务器的需求就可能完全完全不同,那么你对发行版的选择也就完全不同了。

--
其实很多人对服务器的理解并不准确,服务器硬件的存在是为了提供专业的稳定可靠的服务,而如果你只是在自己的桌面机上启动一些服务,这并不意味着你是一个服务器,或者说,如果你只是在上班时间需要提供服务,其他时间均可关闭,那么你用自己的桌面机就可以了,并不需要一个服务器。——就好比,如果你为了卖点商品,可以只是开个网店,也可以只是注册个体工商户,根本没有必要去搞一个上市公司并修一个写字楼。公司和写字楼是用来经商的,但经商并非一定要这些。——服务器是用来提供服务的,但如果你要提供一些简单的可间断的服务,并不需要维护一台服务器。
谢谢,poet

作者: zixue   发布时间: 2009-12-14

引用:
作者: poet
什么版本适合服务器,取决于你赋予服务器什么样的定义。

传统定义的服务器是:从诞生安装好开始,除因极其特殊原因(例如停电同时遇到UPS故障,或者由于管理员的操作错误造成机器必须重启,或者修复一个非常急需的内核级漏洞),应当是永远不关机不重启的。

基于这个原因,传统的教程中让你在服务器上启动一个服务进程,都是直接让你后台运行,而不是让你改 rc.local 之类的启动脚本。因为服务器几乎没有什么机会去调用启动脚本,而服务器的每次重启,通常都需要有管理员维护,因为需要手工启动一些服务。

这个特性还造成了几点:
1。为了不关机,服务器尽量减少外设消耗,只插一根电源和网线。一个机房一般提供少量的显示器和鼠标用于紧急即可,大量的服务器仅仅只是一个主机。
2。人为的操作经常容易造成失误,尤其是图形界面更是如此。为了尽量减少人为操作带来的问题,减少直接物理接触服务器的可能,服务器不直接提供终端,只提供远程访问,提供图形界面对服务器来说一般是意义不大的。因为服务器一般应当锁定在机房,并严格进行门禁管理。
3。为了不关机,服务器的大量外设被设计为热插拔,例如RAID5技术就是设计为其损坏的硬盘可以热插拔并且热替换的。服务器无需关机重启。
4。由于服务器通常是不关机的,所以内核更新和驱动更新一般意义不大,通常只需要基于核心应用的安全更新即可。版本升级完全没有必要,对于bugfix更新,通常管理员要负责检查其更新的内容,如果这个更新是业务所需要的,则进行,否则不进行更新。

一句话,服务器基本原则是“不折腾”,并且所有对服务器的设置都要为实现“不折腾”而服务。

脱离了最先的那个假设,你对服务器的需求就可能完全完全不同,那么你对发行版的选择也就完全不同了。

--
其实很多人对服务器的理解并不准确,服务器硬件的存在是为了提供专业的稳定可靠的服务,而如果你只是在自己的桌面机上启动一些服务,这并不意味着你是一个服务器,或者说,如果你只是在上班时间需要提供服务,其他时间均可关闭,那么你用自己的桌面机就可以了,并不需要一个服务器。——就好比,如果你为了卖点商品,可以只是开个网店,也可以只是注册个体工商户,根本没有必要去搞一个上市公司并修一个写字楼。公司和写字楼是用来经商的,但经商并非一定要这些。——服务器是用来提供服务的,但如果你要提供一些简单的可间断的服务,并不需要维护一台服务器。
理论上,也是应该以“不折腾”为原则的。可是,现实是意外常常有,想永不关机?我看悬,至少我很少看到目前商用的服务器有这么强悍的(或许我接触的都比较草根)。

所以目标仍然设定为:不折腾,但还要多加几个假设:这个服务器是脆弱的,将来的管理员是懒惰+技术不行的。
这样选起版本来,估计才比较合理吧?
选arch,主要是因为系统比较清晰简洁,把PKGBIULD保存之后,将来更新也只需要依样画葫芦,所以个人觉得将来管理员折腾起来会方便点。
唯一要求算高的,就是必须紧随arch社区的脚步。

作者: jobinson99   发布时间: 2009-12-14

引用:
作者: jobinson99
所以目标仍然设定为:不折腾,但还要多加几个假设:这个服务器是脆弱的,将来的管理员是懒惰+技术不行的。
这样选起版本来,估计才比较合理吧?
选arch,主要是因为系统比较清晰简洁,把PKGBIULD保存之后,将来更新也只需要依样画葫芦,所以个人觉得将来管理员折腾起来会方便点。
唯一要求算高的,就是必须紧随arch社区的脚步。
脆弱?指的是什么?硬件的脆弱,操作系统核心组件的脆弱,你要运行的服务程序的脆弱?

另一个问题是:你需要管理几个服务器?如果只是一两个,我看根本不需要管理员,让搭建服务器的人兼职管理就好了。这不会是太大的代价。

如果你有很多服务器需要管理,写 shell 脚本是管理员的基本功,至少维护 cron 需要,你认为你还能让一个懒惰+技术不行的人去管理?你还认为不值得专门聘请一个有经验的管理员去做?

pkgbuild 写得再方便,对服务器而言意义恐怕都不大,因为服务器正常情况下是完全不更新的(也许是因为所谓脆弱,所以管理员们宁可选择胆小),只是针对那些明显的大的安全漏洞,进行有针对性的修补。对于运行关键业务的服务器,必须要求管理员知道这个漏洞的具体危害,决定我们是否真的需要安装这个更新。在你安装系统的时候,不可能知道将来会出现哪些安全更新,不可能提前写好所有脚本。

arch 的优势是经常要更新,而它的缺点也是你“必须得经常更新”,否则将来你安装一个新软件都满足不了版本依赖。会被迫因为要升级某一个软件而升级一大堆东西。因为arch仓库中往往只提供所有包的最新版本,这个特性决定了对于服务器而言它并不是个好的发行版。

当然,还是老话:其实很多时候你并不需要一个服务器,以现在主流机器的性能,直接在桌面机上安装一个服务就够了。做一个 cron 再搞另外个机器同步备份,费事一些就再加上负载均衡,完了。

作者: poet   发布时间: 2009-12-14

楼上,做管理员太勤快,会累死,懒惰才是必由之路。
ibm developworks 上有不少文章专门说明如何做一个懒惰的管理员。

作者: 聚焦深空   发布时间: 2009-12-15

好贴,学习了

作者: longwayhome   发布时间: 2009-12-15