1》交换空间概述:
交换空间(Swap Space)是Linux用于暂时补充物理内存,以提供更多内存空间的一种机制,交换空间对内存有限的计算机有所帮助,但不能取代物理内存,因为它位于硬盘 上,硬盘的存取速度比内存要慢几个数量级,当同时运行很多程序,而他们不能同时都装载进内存时,使用交换空间是一种很有效的手段,而用户在这些程序之间快速切换,可能 会有一个明显的延时,Linux支持两种形式的交换空间:专用磁盘分区和交换文件;磁盘分区效率高,推荐使用,而交换文件更为灵活,但效率低,Linux系统最多可以有32个交换 空间,每个交换空间最大2GB;
推荐的系统交换空间大小如下:
物理内存 推荐的交换空间
不超过4GB 至少2GB
4~16GB 至少4GB
16~64GB 至少8GB
64~256GB 至少16GB
256~512GB 至少32GB
1>增加交换空间:
系统物理内存的调整,或者需要大量使用内存的操作或运行需要大量内存的程序,往往需要增加交换空间,这有3种方法可供选择:创建一个交换分区,创建一个交换 文件,在现有的LVM逻辑卷上扩展交换分区(推荐使用此种方式);
1)创建交换空间的交换文件:
(1)确定新建交换文件的块大小和块数量,例如块大小为1MB,块数量是200,整个空间大小为200MB;
(2)用dd命令创建一个交换文件,其中of指定文件名,bs和count是块大小和数量;
(3)使用mkswap命令基于上述文件创建一个交换空间:
(4)使用swapon命令启用该交换空间:
(5)使用swapon -s 命令查看当前启用的所有交换空间,可见新增的交换空间/tmp/swapfile已经启用,只是优先级较低;
当然,还可以用free命令来查看当前的交换内存大小,以上设置的交换空间都是临时性的,要让它在系统启动时自动启用,还必须在/etc/fstab文件加上 相应的定义;
2>扩展基于逻辑卷的交换空间:
Red Hat Enterprise Linux 5安装时默认将交换分区建在/dev/VolGroup00/LogVol0l逻辑卷上面,可利用逻辑卷的特性灵活扩展交换空间;
1)停用基于相应逻辑卷的交换空间:
swapoff -v /dev/VolGroup00/LogVo101
2)为现有逻辑卷增加空间(这里增加256MB)
lvm lvresize /dev/VolGroup00/LogVo101 +256MB
3)重新建立交换空间:
mkswap /dev/VolGroup00/LogVo101
4)执行命令swapon -va启用扩展的逻辑卷用于交换空间;
5)执行命令cat /proc/swaps或者free检查基于逻辑卷交换空间的扩展是否正常启用;
3>创建用于交换空间的逻辑卷:
通常创建逻辑卷用作交换空间;
1)创建一个逻辑卷,这里假设其名称为/dev/VolGroup00/LogVol02,大小为256MB;
lvm lvcreate VolGroup00 -n LogVol02 -L 256M
2)使用mkswap命令格式化新的交换空间:
mkswap /dev/VolGroup00/LogVol02
3)在/etc/fstab文件中添加以下条目,让系统启动时自动挂载该文件系统;
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
4)执行命令swapon -va启用扩展的逻辑卷用于交换空间;
5)执行命令cat /proc/swaps或者free检查基于逻辑卷的交换空间是否正常使用;
4>减少交换空间:
有时还要减少交换空间,如减少物理内存后相应地减少交换空间,这也有3种方法供选择,分别是删除交换分区所有的整个LVM逻辑卷,删除交换文件或缩减现有 LVM逻辑卷上的交换空间;
1)删除交换文件:
(1)执行命令swapoff停用交换空间;
(2)从/etc/fstab文件中删除该交换空间的条目;
(3)使用rm命令删除交换文件本身;
2)缩减基于逻辑卷的交换空间;
(1)停用相应逻辑卷的交换空间;
swapoff -v /dev/VolGroup00/LogVol01
(2)减少逻辑卷大小:
lvreduce /dev/VolGroup00/LogVol01 -L -512M
(3)重新格式化新的交换空间:
mkswap /dev/VolGroup00/LogVol01
(4)启用该逻辑卷用于交换空间,然后进行测试;
3)删除基于逻辑卷的交换空间:
(1)停用该逻辑卷的交换空间:
swapoff -v /dev/VolGroup00/LogVol02
(2)删除该逻辑卷:
lvremove /dev/VolGroup00/LogVol02
(3)从/etc/fstab文件中删除该交换空间的条目;
2》文件系统的备份:
备份就是保留一套后备系统,做到有备无患,是系统管理员最重要的日常管理工作之一,恢复就是将数据恢复到事故之前的状态,为保证数据的完整性,需要对系统进行 备份;
1>备份内容:
在Linux操作系统中,按照要备份的内容,备份分为系统备份和用户备份,系统备份就是对操作系统和应用程序的备份,便于在系统崩溃以后能快速,简单,完全 地恢复系统的运行,最有效的方法就是仅仅备份那些对于系统崩溃以后恢复所必需的数据;用户备份不同于系统备份,原因是用户的数据变动更加频繁一些,当备份用 户数据时,只是为用户提供一个虚拟的安全网络空间,合理地放置最近用户数据文件的备份,当出现任何问题时,如误删除某些文件或者硬盘发生故障时,用户可以恢 复自己的数据,用户备份应该比系统备份更加频繁,可采用自动定期运行某个程序的方法来备份数据;
2>备份策略:
在进行备份之前,首先要选择合适的备份策略,决定何时需要备份,以及出现故障时进行恢复的方式,通常使用的备份方式有以下3种:
1)完全备份:
对系统进行一次全面的备份,在备份间隔期间一旦出现数据丢失等问题,可以使用上一次的备份数据恢复到备份之前的数据状况,这种方式所需时 间最长,但恢复时间最短,操作最方便,当系统中数据量不大时,采用完全备份最可靠;
2)增量备份:
只对上一次备份后增加的和修改过的数据进行备份,这种方式可缩短备份时间,快速完成备份,但是可靠性较差,备份数据的份数太多,这种方式 很少采用;
3)差异备份:
对上一次完全备份(而不是上次备份)之后新增加或修改过的数据进行备份,这种方式兼具完全备份和增量备份的优点,所需时间短,并节省空 间,恢复方便,系统管理员只需两份数据,就可以将系统完全恢复,这种方式适用于各种备份场合;
3>备份规划
专业的备份工作需要认真规划,兼顾安全与效率,而不是简单地执行备份程序,实际备份工作中主要采用以下两种方案:
单纯的完全备份:
定时为系统进行完全备份,需要恢复是以最近一次的完全备份数据来还原,这是最简单的备份方案,但由于每次备份时,都会将全部的文 件备份下来,每次备份所需时间较长,适合数据量不大或者数据变动频率很高的的情况;
完全备份结合差异备份:
以较长周期定时进行完全备份,期间则进行较短周期的差异备份,例如每周六晚上做1次标准备份,每天晚上做一次差异备份,需要恢复时 先还原最近一次完全备份的数据,接着再还原该完全备份后最近一次的差异备份,如果周三出现事故,则可将数据恢复到周二晚上的状态,先还 原上周六的完全备份,再还原本周二的差异备份即可;
3》数据备份操作:
在Linux系统中,可以使用多种工具和存储介质进行备份;
1>使用tar命令进行备份:
直接保存数据会占用很大的空间,所以常常压缩备份文件,以便节省存储空间,tar是用于文件打包的命令行工具,可以将一系列文件归档到一个大文件中, 也可以将档案文件解开已恢复数据,作为常用的备份工具,tar的语法格式如下:
tar [选项] 档案文件 文件或目录列表
列如要备份用户zhongxp主目录中的文件,可以执行以下命令:
tar -czvf zxpbak.tar /home/zhongxp
上述命令将/home/zhongxp目录中的所有文件归档(打包)到zxpbak.tar文件(扩展名一般为.tar),归档的同时对数据进行压缩(使用选项-z);
要恢复使用tar命令备份过的文件(解开档案文件),可使用选项-x
tar -xzvf zxpbak.tar
默认情况下,tar将文件恢复到当前工作目录,也可以使用选项-C指定要恢复到的目录;
2>使用dump和restore实现备份和恢复:
dump是一个较为专业的备份工具,能备份任何类型的文件,甚至是设备,支持完全备份,增量备份和差异备份,支持跨多卷磁带备份,保留所备份文件的所 有权属性和权限设置,能够正确处理从未包含任何数据的文件块(孔洞文件),restore是对应的恢复工具,红帽5系统默认已经安装了dump和restore这两个工具;
1)使用dump命令备份:
在用dump做备份时,需要指定一个备份级别,它是0-9之间的一个整数,级别为N的转储会对上次进行的级别小于N的转储操作以来修改过的所 有文件进行备份,而级别0就是完全备份,通过这种方式,可以很轻松的实现增量备份,差异备份,甚至每日备份;
例如,以下命令统计完全备份/dev/sda1所需的空间,以防磁带或磁盘空间不足,级别0表示完全备份,选项-s表示统计备份所需空间:
dump -0s /dev/sda1
选项-f指定备份文件的路径和名称,-u表示更新数据库文件/etc/dumpdates(将文件的日期,存储级别,文件系统等信息都记录下来);
dump -0u -f /tmp/boot.dump /boot
如果不使用-u,所有存储都会变为级别0,因为没有先前备份过当前文件系统的记录;
使用级别1只会备份完全备份后有变化的文件;
要实现增量备份,第一次备份时可选择级别0,以后每次做增量备份时就可以依次使用级别1,级别2,级别3等等;
dump -0u -f /tmp/boot0.dump /boot
dump -1u -f /tmp/boot1.dump /boot
dump -2u -f /tmp/boot2.dump /boot
dump -3u -f / tmp/boot3.dump /boot
要实现差异备份,可先选择级别0做完整备份,然后每次都使用大于0的同一级别,如每次都使用级别1:
dump -0u -f /tmp/boot0.dump /boot
dump -1u -f /tmp/boot1.dump /boot
dump -1u -f /tmp/boot2.dump /boot
dump -1u -f /tmp/boot3.dump /boot
dump可以将备份存储在磁带上,Linux通常用/dev/st0代表倒带设备,而用/dev/nst0代表非倒带设备,如下所示:
dump 0f /dev/nst0 /boot
使用倒带设备存储时,当磁带用完它会自动倒带并接着存储,会覆盖以前的数据,这样就存在丢失已有数据的风险;
2)使用restore命令恢复:
使用restore命令从dump备份中恢复数据可以使用两种方式:交互式和直接恢复,管理员也可以决定恢复整个备份,或者只恢复需要的文件,恢 复数据之前,要浏览备份文件中的数据,可以使用如下命令(-t 选项表示查看):
要恢复一个备份,可以使用如下命令(-r选项表示重建):
restore -rf /tmp/boot.dump
使用以下命令进入交互式恢复模式:
restore -if /tmp/boot.dump
3>光盘备份:
红帽5安装有cdrecord软件包,可以用来创建和管理光盘介质,使用光盘进行数据备份,需要首先建立一个光盘镜像文件,然后将该镜像文件写入光盘 中:
例如,要将/home目录的数据备份到光盘镜像文件中,可以使用如下命令:
mkisofs -r -o /tmp/home.iso /home
上述命令会在/tmp目录中建立一个名为home.iso的镜像文件,该文件包含/boot目录的所有内容,其中-r选项表示支持长文件名,-o表示输出,默认 情况下,mkisofs命令也会保留所备份文件的所有权属性和权限设置;除了使用mkisofs命令,还可以使用dd命令建立光盘映像:
dd if=/dev/sda1 of=/tmp/boot.iso
在dd命令中,if参数指定输入文件,of参数指定输出文件,dd命令的if参数必须是文件,而不能是一个目录,这里进行/boot目录的备份时,实际使用 的参数是/dev/sda1,即/boot目录对应的磁盘分区;
刻录机在Linux中被识别为SCSI设备,即使该设备实际上是IDE设备,在实际刻录光盘之前,可以使用以下命令对刻录设备进行检测,获取光盘刻录 机的SCSI设备识别号以便在刻录光盘的工具中使用;
cdrecord -scanbus
上述命令现实的结果前一项的前3个数字分别指SCSI总线,设备标识和LUN(逻辑单元号,),运行cdrecord刻录需要这3个数字:
使用cdrecord命令将ISO文件刻录为光盘的语法格式如下:
cdrecord -v -eject <speed=刻录速度> <dev=刻录机设备识别号> <ISO文件名>
-eject表示刻录完毕弹出光盘,例如,刻录机设备识别号为0,1,0,将镜像文件刻录到空白光盘中的命令如下:
cdrecord -v dev=0,1,0 home.iso