首页  ·  知识 ·  基础设施
根据服务器用途合理选择Linux分区
佚名  本站原创  数据中心  编辑:dezai  图片来源:网络
在Linux系统上部署网络应用的时候,系统管理员需要合理规划Linux分区。这跟在微软服务器上部署网络应用有一定的差别。在微软服务器上如果要实现比较高的安全

在Linux系统上部署网络应用的时候,系统管理员需要合理规划Linux分区。这跟在微软服务器上部署网络应用有一定的差别。在微软服务器上如果要实现比较高的安全性能的话,只需要把分区格式转换为NTFS格式即可。但是如果采用Linux系统的话,就没有这么简单。Linux系统管理员要根据服务器的用途来选择合适的Linux分区。

  一、 Linux分区与Windos分区表示的异同。

  微软操作系统中,其分区是通过C、D、E等单个大小字母表示的。但是在Linux操作系统中则另有一套表示的方法。如果要管理好Linux分区,在首先要对这套分区的编码有一个了解。其实,Linux系统中分区的编码分为两部分,一是硬盘的编码,二是分区的编码。

  在Linux系统中,每一个硬件设备都印射到一个系统的文件。所以硬盘、光驱等硬件设备在Linux系统中是以一个文件的形式存储的。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为 hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。如果Linux操作系统中有两块IDE硬盘,则第一个硬盘代码为had,第二块硬盘代码为hdb。显然这跟微软的操作系统表示方法不一样。如果是Windows操作系统,则它直接以磁盘0、磁盘1表示。

  另外,在分区的表示上两个操作系统也有差异。两者有一个相同,就是要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。不过两者分区的代码不同。对于每一个硬盘,Linux操作系统中分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。例如,第一块 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。如果有第二块硬盘,则分区的代码就为hdb1等等。这跟Windows操作系统是不同的。在微软操作系统中,其分区直接使以C、D、E、F等标示下去的。故如果单看这个分区代码,在微软操作系统中并不知道这个操作系统中有多少块硬盘,哪一个分区是在哪一个硬盘上的。这就给系统的日常管理带来一定的麻烦。

  在Linux系统中利用df命令可以查看当前的分区信息。其现实的信息如下图。从这个信息中可以得知当前硬盘的数量、硬盘的类型(是IDE硬盘还是SCSI硬盘)、各个分区的用途、使用率等等。


    
    插图一:DF命令示意图

 二、/CHROOT与/CACHE分区。

  在Linux操作系统中,有两个很特殊的分区。他们分别叫做CHROOT分区与/CACHE分区。这两个分区并不是Linux操作系统上必须存在的分区。这两个分区的是否需要存在直接跟在Linux所跑的服务有关。

  如/chroot分区是为yDNS服务器、Apache服务器和其他需要改变根目录的服务器准备的。/cache分区是为Proxy服务器准备的。如果不打算安装Squid Proxy 服务器,不必创建/cache分区。.不过在实际工作中,这两个应用服务的结合会使服务器的性能提高很多并且更加安全。所以如果系统管理员要在Linux服务器上部署邮件服务器、FTP服务器等等,就需要注意在对硬盘进行分区时,是否需要建立这些特殊的分区。如果一些网络应用服务可能需要改变根目录的,那么在分区的时候就需要建立这个/chroot分区。

  在分区安排中,特别保留了四百兆的磁盘空间给改变根目录的(英文名为chrooted)程序,如DSN服务器以及其他软件。这是必须的,因为这些应用服务的某些文件和其他可执行的程序都会安装在这个分区上。

  那么CHROOT到底有什么用途呢?简单的说,CHROOT就是改变程式执行时所参考的根目录位置。因为默认情况下,Linux操作系统其根目录为/root。有时候出于安全或者其它一些目的,系统管理员要更改这个根目录的位置。限制其它应用服务访问这个操作系统的根目录。具体的说,只所以要为需要改变根目录的服务设置这个特殊的分区,主要是因为这个分区具有如下几个特殊的功用。如可以防止使用者存取某些特定档案,增进系统的安全。如限制被chroot的使用者所能执行的程式,如SetUid的程式,或是会造成Load 的 Compiler等等。也就是说,采用/chroot分区格式主要是出于安全方面的考虑。

    另外CHROOT的另外一个用途就是可以用来在已有Linux操作系统的基础上来安装另外一个Linux版本的操作系统。也就是常说的双操作系统。chroot 工具是Linux操作系统都具备的工具,从表面的意思看,chroot 是从一个根目录到另一个根目录。在一个Linux操作系统中安装另一个操作系统,就是利用chroot的这个特点。首先创建chroot运行的基础环境,然后通过chroot到新的根目录,然后再用相应的软件包管理工具把新的操作系统其它软件包安装上。这就是基本的原理。由于这不是这篇文章要谈的内容,故这里只是做一个大致的说明。

  如果Linux操作系统不是当作服务器,而是当作普通的操作系统来使用,则没有必要建立这两个特殊的分区格式。

 三、 合理设置交换分区大小以提高服务器性能。

  在Linux服务器部署的时候,除了要考虑是否需要安装以上两个分区格式外,最重要的就是合理设置交换分区。什么交换分区呢?简单的说,交换分区就是一个在硬盘空间中划分的“虚拟内存”。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到交换分区空间中,等到那些程序要运行时,再从交换分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行交换分区交换。

  其实交换分区在Windows操作系统中也存在,只是换了个名字而已。在微软操作系统中这个交换分区又叫做虚拟内存。在使用Windows系统时,大家可能有这个直观的感受。在微软操作系统中同时运行多个程序。当管理员切换到一个很长时间没有“运行”的程序时,会听到硬盘突然发出很大的响声。但是此时没有从硬盘中读取大量数据。为什么会突然发出这么大的硬盘数据读取声音呢?这是因为这个程序的内存被那些频繁运行的程序给占用了(内存不能够容纳全部程序的情况下),放到了虚拟内存中。因此,一旦此程序被放置到前端,它就会从虚拟内存中取回自己的数据,将其放进内存,然后接着运行。

  Linux操作系统下的虚拟分区就是跟虚拟内存一样,起着一个备用内存的作用。交换分区的调整对Linux服务器的性能至关重要。通过调整交换分区,有时甚至可以越过系统性能瓶颈,节省系统升级费用。交换分区不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,利用硬盘空间来增大有限的内存大小。更重要的是,交换分区是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰,可以提高更高的安全性。同时也可以有效避免多个进程之间相互干扰的情况。当系统管理员在部署网络应用的时候,需要合理设置这个交换分区的大小。通常情况下,一般建议交换分区为内存的一倍到两倍大小为好。如果设置的太大是一种浪费,太小又不能够满足应用程序的需要。如果中间对服务器的内存进行升级了,那么这个交换分区的大小也需要随之调整。

  另外需要注意的是,交换分区的数量对性能也有很大的影响。因为交换的操作其实就是是磁盘输入输出(丛硬盘中存取数据)的操作,如果有多个交换分区,则交换分区空间的分配会以轮流的方式操作所有的交换分区,这样会大大均衡硬盘输入输出的负载,加快交换速度。如果只有一个交换分区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。此时系统管理员就会发现CPU并不很忙,而系统却慢。这说明,瓶颈在硬盘的输入输出上,依靠提高CPU的速度是解决不了问题的。在Linux系统中可以创建一个以上的交换分区。在部署应用服务器时,如果并发访问用户比较多或者一台服务上同时部署多个网络应用,则应多建立几个交换分区,以减轻磁盘输入输出的压力。另外这个交换分区的位置对交换分区与服务器的性能也会产生影响。应尽量把交换分区放在硬盘驱动器的起始位置,因为一个磁盘的起始位置物理上是在最外的柱面上,所以磁头每转一圈可以覆盖更大的面积。

本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的