[已解决]用ubuntu server建服务器的几个相关问题

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

[已解决]用ubuntu server建服务器的几个相关问题

#1

帖子 Horontu » 2008-06-20 15:53

打算用ubuntu server 8.04搭建一个局域网内的服务器,有个简单的web平台,同时也作为局域网ftp服务器使用,基本的想法是这样的:

创建/myserver目录,在该目录下再创建apache、php、mysql、proftpd以及webroot和ftpfile六个目录,分别用来安装apache、php、mysql、proftpd,webroot是作为webserver的根目录保存web页面的,ftpfile目录则是用来保存文件的。

在这种需求下,该如何划分分区比较合理呢?这个myserver目录是放在根/下好呢?还是放在/home/user/下好呢?放在/home/user/下可以将/home单独划分分区,系统故障时就不需要再备份文件了,重装系统也不会导致文件丢失,不知道我这么想是否正确?如果放在/home下是否还会涉及到操作权限方面的一些问题呢?另外,各个分区的大小比例该如何设置才更合理一些呢?

该服务器是打算长期使用的,调试完成后,基本上就不会再改动什么了,除了web平台的一些数据库操作外,就是对ftp文件的操作,基本没有别的要求,所以最主要的是稳定和安全,既要保证系统正常运行,又要确保数据的安全性和可恢复性。

还请大家给些意见,万分感谢!
上次由 Horontu 在 2008-06-22 23:01,总共编辑 1 次。
hjc9246
帖子: 44
注册时间: 2007-07-25 20:00
联系:

#2

帖子 hjc9246 » 2008-06-20 22:53

建议如此,假定你有二块SATA硬盘(别问我为何这样假定。。我的理由如下)
我再假定你需要建设abc.com bcd.com二个WEB站。。
再假定,你同我一样是懒人型。所以在安装LINUX过程中,直接选的安装LAMP
再假定,你安装的是proftpd.

sda分区及挂载 / /boot swap /home 四个驱
sdb分区及挂载 /tmp(平时帮系统跑一下tmp临时文件吧。要不空着浪费) /backup

首先。安装proftpd 在/etc/proftpd 修改default ~(主要是锁定主目录)
然后
sudo groupadd -g 1002 userftp
sudo useradd -m /home/abc-com -g 1002 -s /bin/false abc-com -M(命令自己看下相关说明)
sudo useradd -m /home/bcd-com -g 1002 -s /bin/false bcd-com -M(命令自己看下相关说明)
sudo passwd abc-com
sudo passwd bcd-com

上面的意思是建用户,并修改密码。。好了。你现在试下。。FTP可以上传文件到设定的目录中了~~
MYSQL建库就不用说了吧~
然后在你的abc-com中建立一个文件
sudo vi backup.sh
输入内容
#!/bin/bash
rm ~abc-com/db.sql #这句可以不要!
mysqldump -u 用户名 -p密码 abc-com的mysql库名 >~abc-com/db.sql #把库备份成.sql文件到本地
cp ~abc-com /backup -ua

然后你sudo vi /etc/crontab
在里面有些信息。。你在最下面的一行前加上
0 5 * * * root sh ~abc-com/backup.sh

OK了。这样你早上每天5点钟把他会把你的目录。整个拷贝到/backup (加了-u参数就是只拷贝有更新的)


好了。废话挺多,我的工作心得,代码不一定写的正确,希望你给你提供一条思路
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#3

帖子 angelus » 2008-06-21 6:20

要想把那几个服务都集中在一起,最大的问题是编译,需要你自己手动编译才能把服务集中起来,不然都会放到/usr这个里边了,还有放在根目录下是不可取的
最好放在单独的分区内,如/home/xxx里,ftp必定要牵扯到磁盘配额,quota是需要分区支持的,单独分区可以更灵活配置。

最后罗嗦下,/usr是标准的系统软件存放地,完全可以把APM默认放里边,可以省不少力气,/home分区大些是必要的,把ftp目录指向/home,然后配置cron,每天夜晚12点备份/home分区到第二块硬盘,数据库备份你可以找点资料,备份也是有技巧的,比较专业就需要你了解:增量,差分,三带轮换,六带轮换等。。。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

#4

帖子 Horontu » 2008-06-21 8:46

谢谢楼上两位的指点!!

不好意思,顶楼忘了说明,准备用来安装ubuntu的服务器是dell 6850服务器,6块scsi硬盘,初步打算做raid5,做raid的话是不是就不能再单独针对某一块硬盘进行操作了呢?在这种情况下,该如何对各个分区进行划分呢?

回3楼:

ubuntu-server默认状态下不安装任何应用软件,而我安装这台服务器主要是在局域网内自用,而且希望通过这一过程,更多的学习ubuntu,学习linux,所以才会想把需要的每个应用软件都集中起来,一来便于我的日常维护和管理,二来也使得ubuntu-server中的软件结构看上去更清晰些,而且也不用再单独划分/usr分区了 :)

请大家看看在做raid的情况下,该如何进行划分更加合理有效呢?万分感谢!!
hjc9246
帖子: 44
注册时间: 2007-07-25 20:00
联系:

#5

帖子 hjc9246 » 2008-06-21 9:08

没组过raid 5,不了解。不过,你可以将它当成一个硬盘不使用,基本步骤同我上面回贴一样。
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#6

帖子 angelus » 2008-06-21 10:45

使用raid 5磁盘阵列就不用担心数据备份问题,通过分布在每块硬盘的奇偶校检就可以自动恢复,3+n块硬盘组成raid5后,就可以当做一块硬盘进行操作
raid5推荐使用5块硬盘,留1块留作hot spare(热备用),防止其中一块硬盘损坏
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

#7

帖子 Horontu » 2008-06-21 20:04

多谢楼上两位的指点!!


回2楼:

有必要单独划分/boot分区吗?在网上看到一些资料,说是单独划分/boot分区主要是为了避免一些旧的bios的某些功能缺陷,在新款的机器上已经没有必要再单独划分/boot分区了,不知道是否如此呢?


回6楼:

那是不是说我只使用6块scsi硬盘中的5块,剩下一块做热备,可这样就造成了空间上的浪费,将6块硬盘全都用于raid,作为一块硬盘来使用,做raid5,也应该没什么问题吧?

另外,在这种情况下,ubuntu server的分区该如何划分更合理呢?


再次感谢!!
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#8

帖子 angelus » 2008-06-21 21:07

怎么说呢,根据raid5的原理,只要有一块硬盘出现问题,那整体的读写速度将会大大降低,因为读写都要通过奇偶校检将那块坏的硬盘数据推出,留出一块硬盘并不是没有道理的,根据你自己的需要吧,要明白raid1为了系统的可靠,可是牺牲50%的空间做镜像。
系统并没有要求一定要需要/boot分区,但单独建立/boot分区是一个明智的做法,
系统的引导系统也是需要维护的,分类存放东西总是一个好习惯,相信就算是处理垃圾的人也喜欢见到分类好的垃圾箱,至于系统分区,够用和留放一定的升级空间就行了,没有什么必须的要求,把标准分区中每个分区说明看下,留下觉得必要的单独分区和空间就行了

这里把重要的分区列出来
/ :根分区,存放系统命令和用户数据的
swap :交换分区,建议为物理内存的2倍
/boot :存放系统内核用于引导系统和引导过程用到的文件
/usr :存放linux的应用程序
/var :存放系统中经常变化的数据
/home :存放普通用户数据,建议所有剩余空间
其他分区如果没有单独分区,系统会自行创建在/分区下,以目录方式存在
所以/分区应该大点,建议是5GB

系统必要也是必须至少包含2个分区,即/和swap,其他根据你自己的需要吧
分区就跟在土地上建立房子一样,大门,客厅,卧室,仓库等相当与分区
你可以把所有都放在一个空间中,也可以分房放,就看你自己了,国家唯一不
允许的就裸放吧,当然现在还不行,以后不好说
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

#9

帖子 Horontu » 2008-06-21 22:58

讲解的很详细,谢谢angelus!!

之前没有接触过raid5做热备的情况,准备学习下……

我也很赞成更好的分类,不过,一直没搞清楚“/usr”和“/var”的实际作用,分区说明倒是看过,但有些定义单从字面上看,不太容易理解,好比“linux应用程序”和“系统中经常变化的数据”到底是个什么概念呢?还有一个“/opt”的分区,是存放第三方应用软件,这个和“/usr”的区别到底是什么呢?“/usr”所存放的“linux应用程序”指的是哪些呢?我搭建的服务器只准备安装apache、php、mysql和proftpd,而且都准备安装在自定义的位置,那么“/usr”分区中的数据是否还会发生变化呢?而“/var”所存放的“系统中经常变化的数据”是否就是指“应用程序的配置文件”呢?如果只是配置文件的话,那变化应该不大吧?这个分区需要的空间也不太大吧?这样的话,是否并不需要把“/var”分区单独划分出来,和“/”放在一起就行了吧?还有“/tmp”分区和swap分区的差别在哪里呢?划分了swap分区是否还需要再划分“/tmp”分区呢?
希望可以将分类和实际使用更好的结合在一起,做出更好的选择,还请多多帮忙,万分感谢!!
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#10

帖子 angelus » 2008-06-22 6:57

我对分区也没有具体深入的研究过,因为现在的分区概念已经比较模糊了,没有唯一的标准强制,/var最典型的就是默认会把更新包下载到/var下,vsftpd会默认
主目录和log在/var下,更正下你的认识,配置文件通常都是不会变化的,而且大都存放在/etc目录下
/opt和/usr区别很模糊,如果是默认安装,就会在/usr下,成为linux的应用程序,如果自己编译软件,一般建议是放在/opt下的,以视区别
/tmp和swap有着本质的区别,一个只是存放临时文件的分区,一个是扮演内存扩展的角色,swap和win下虚拟内存相同,只是一个在分区一角划出空间使用,一个是作为独立分区使用
我能给的建议很简单,最好划分出重要的分区,如
/usr ,/var , /home ,/boot
/分区,与swap是必须的,其他分区就让它们挂在/分区下吧

ftp服务软件,推荐你用vsftpd,简单安全快速,社区支持比较好,教程也很多,有问题解决速度也快,如果追求更多功能,proftpd也是不错的选择,不过传输速度会降低,有人实验在局域网,vsftpd可以有10m/s,proftpd就只有8m/s了
有空可以看下我没事做的测试vsftpd服务器
http://apt-get.vicp.net/itweb :注册用的
ftp://apt-get.vicp.net :ftp服务地址
如果你登不上去,就是我把机器关了,因为是为了配合一个教程,在家用adsl做的,有时候会让机器休息的。

如果你要集中服务软件,自己编译设置放在/opt下是个不错的选择,/home毕竟是存放用户目录数据的,这时候你就可以选择把/opt单独划分出来。
上次由 angelus 在 2008-07-10 9:21,总共编辑 1 次。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

#11

帖子 Horontu » 2008-06-22 10:57

多谢angelus的耐心讲解!!弄明白了不少概念,谢谢!!

根据您的讲解,决定将硬盘做raid5热备,然后独立划分“/boot”、“/”、“/opt”、“/home”以及“swap”分区,因为准备自己编译安装应用软件,放在“/opt”下,所以不准备单独划分“/usr”了,“/tmp”分区也不打算单独划分了,准备和“/usr”一起都放在“/”下,把“/”划分的大一些,应该就不会有什么问题了吧?至于“/var”分区,还是不太清楚,如果说只是存放更新包的话,那么也没必要单独划分了吧?因为这些数据不涉及保存备份的问题,事实上,如果系统出了问题,只需要保留下“/home”下的数据就可以了,连“/opt”下安装的软件都是可以重新安装配置的,只是略有些麻烦罢了。还有“/boot”分区,您上面提到的,对这个分区的维护指的是什么呢?“/boot”分区还需要经常进行维护吗?

不知道我这样理解是否正确?上面的划分方法是否合理?另外,关于各个分区的大小,如何分派合适呢?从网上搜索到的一些资料来看,“/boot”分区200MB应该足够了,“swap”分区划分为内存的两倍即可,而“/”和“/opt”我准备各自划分10G,剩下的全都划给“/home”,不知道这样的分配方式是否合理?

此外,各个分区所使用的文件系统是否还有什么需要特别配置的呢?如果没有特殊需要,我准备都使用reiserfs,不知道是否可以?

其实主要的疑问还是在“/usr”和“/var”这两个分区上,还望多多指点!!万分感谢!!
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#12

帖子 angelus » 2008-06-22 11:12

如果你不需要经常安装软件,就可以不用单独划分,/usr 和/var
/usr 主要是安装系统时候带的一些必要的软件与后续安装软件存放地
/var 挂在根分区并不存在问题,只要/分区够用就行

还有另外一种说法,/var是最好单独划分的,为了防止攻击将/var磁盘写满,引起其他分区服务不能正常运行

文件系统使用reiserfs是官方推荐的,同时也是非常优秀的文件系统
主要是把/home分区保护好就行了,把软件的log也指向/home一个集中的目录里,同时软件的配置文件也备份下,
恢复就很轻松了,如果要求文件几乎绝对不会丢失的话,还是需要普通的备份策略的,
通俗的说就是:两手准备,一个用着,一个看着,至少外国火箭就是两种应急方案
上次由 angelus 在 2008-07-10 9:14,总共编辑 1 次。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
Horontu
帖子: 120
注册时间: 2006-10-21 21:04

#13

帖子 Horontu » 2008-06-22 16:13

多谢angelus的讲解!!

准备就按照上面的方案进行分区了,“/boot”分区200MB,“/”和“/opt”分区各10GB用于系统和软件的安装,“swap”分区划分为内存的2倍大小,剩下的空间全都分给“/home”,全部使用reiserfs文件系统。

暂时不会将软件的log文件和配置文件也指向到“/home”下,等慢慢熟悉了各个软件的使用后再慢慢配置

再次感谢angelus的讲解!!受教了!多谢!!
zdong.kigg
帖子: 4
注册时间: 2008-07-09 23:57

#14

帖子 zdong.kigg » 2008-07-10 1:01

看了你们的讨论,学习到很多,谢谢你们。。
hjc9246
帖子: 44
注册时间: 2007-07-25 20:00
联系:

#15

帖子 hjc9246 » 2008-08-21 10:22

我的建议是把 /tmp 设为reiserfs 其它的分区还是ext3吧。
回复