|
SoftRAID 软件磁盘阵列
使用软件磁盘阵列应该在安装 Linux 时,直接透过 Disk-Druid 来设定比较方便,如果事后想要手动加上去,步骤比较繁杂,首先和 LVM 系统一样,你必须先使用 fdisk 将预先割好要作磁盘阵列的分割区改为 fd 类型,千万不要拿已经有资料的 Linux ext2 或 swap 来改,否则资料会全部遗失,修改方法请自行参考前面的解说。特别要注意的是,要作磁盘阵列的分割区其容量必须一致,不可以有大有小!
改好扇区类型后,请用底下指令建立软件磁盘阵列组态文件:
touch /etc/raidtab
该档案内容如下:
raiddev /dev/md0 //定义磁盘阵列的装置名称
raid-level 1 //定义磁盘阵列的等级,RAID 1 就是 Mirror
nr-raid-disks 2 //定义磁盘阵列是由多少实体分割区组成的
chunk-size 64k //定义 chunk 大小,由于是软件数组所以是使用系统主存储器来进行 chunk,这个数值设大一点虽然对磁盘阵列效能有帮助,但却会耗掉系统资源,建议使用默认值就好了
persistent-superblock 1//启用 superblock,这是用来作磁盘寻址,它能帮助 kernel 在侦测 RAID 磁盘时不会误判
nr-spare-disks 0 //定义备用的扇区
device /dev/hda1 //定义组成 RAID 的第一块实体分割区
raid-disk 0
device /dev/hdc1 //定义组成 RAID 的第二块实体分割区
raid-disk 1
以上面这个例子来说,作好的磁盘阵列在写入数据时,两个实体分割区都会写入数据,读取资料时,则只要其中一个扇区能正常读取即可,这样就可以充分利用磁盘阵列的好处来进行数据保全。做好组态设定以后,接下来请以下列指令开始制作磁盘阵列:
mkraid /dev/md0
磁盘阵列一但制作好了,依然得先将扇区格式化,一般是格式化成 ext3:
/sbin/mkfs -t ext3 /dev/md0
格式化好的扇区就可以直接挂载使用:
mkdir /secure_data
mount -t ext3 /dev/md0 /secure_data
资料保全测试:
使用 fdisk 将 RAID 磁盘阵列其中一个实体分割区删除后,重新开机,发现 RAID 激活时出现错误讯息,警告我们有部分磁盘损毁,但储存的资料仍然具全没有遗失。
如果开机讯息闪得太快没有看清楚,可以使用底下指令来观察:
lsraid -a /dev/md0
将该分割区重新分割并修改格式为 fd 后,进行资料复原工作:
raidhotadd /dev/md0 /dev/hdc1(将空白扇区 /dev/hdc1 加入 RAID 中并复原资料)
完成以上步骤后,再使用 lsraid 指令来观察,发现 RAID 装置已经恢复正常。
四、工作管理进程:
Linux 提供四种自动执行程序的机制,包含:cron、anacron、at 和 batch。使用时机分述如下:
cron 主要用来做周期性工作的管理进程,会根据系统时间来判断程序是否该执行,万一系统时间设定不正确将会造成进程错乱。
anacron 和 cron 一样也是用来做周期性工作的管理进程,但是它不检查系统时间,而改以读取时间戳记来计算间隔日数,依间隔日数判断是否该执行,适用于每天、每周或每月只执行一次的工作。
at 让指定程序在某个时间点到达时自动执行,适用于只执行一次的工作。
batch 指定工作在系统闲置时执行,可用来避开高负载时段。
使用 cron 前请先确定管理程序是否已经执行,可以使用以下指令来查看:
/sbin/service crond status
虽然 cron 允许使用者自行安排自己的工作,以方便在结束联机后,程序能自动运作,但这类工作对于已经提供多种网络服务的服务器来说负担太大,因此建议不要教使用者使用它,本文也不讨论这类的事情,毕竟我们的服务器只是 PC,不是 main frame。
cron 的主要设定档 /etc/crontab 内容如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
前面几行是定义 cron jobs 执行时的环境,我们不需要去修改它,底下四行是用来定义工作管理进程,上面看到的是系统管理进程的定义区分为七个字段,分别代表:分、时、日、月、星期、执行时的身分、要执行的 script,而一般的工作则只区分为六个字段,前五个字段与系统管理进程相同,最后一个字段则是要执行的工作。
字段 有效数值
分 0~59, * 代表每分钟都要执行,1-4 是指前四分钟各要执行一次,如果执行的时间不是连续的,可以用逗号来区隔,例如:5,10,15,20 代表第五分钟、第十分钟、第十五分钟、第二十分钟时要执行,如果每隔五分钟要执行一次,可以简写为 */5。
时 采用 24 时制,有效数值为 0~23,可以使用 * - , / 等通配字符,意义同上。
日 1~31,如果使用 30,则每逢二月会跳过不执行,如果使用 31,会变成大月时才执行,因此对于每月都得执行一次的工作,请安排在 28 日以前执行。当月份有指定时,必须为有效日期,否则该工作将永远不执行。通配字符使用方式同上。
月 1~12,也可以直接用英文缩写:jan、feb......等。 通配字符使用方式同上。
星期 0~7,其中 0 和 7 都代表星期天,也可以使用英文缩写:sun、mon......等。 通配字符使用方式同上。
如果要执行的工作是属于每天、每周或每月执行一次,建议改用 anacron 以确保一定会执行,如果是每小时要执行,建议直接在 /etc/cron.hourly 目录内直接新增一个定义文件,语法需与 /etc/crontab 相同。 其它情形则把定义档放置在 /etc/cron.d,这里的定义档将会每分钟都检查一次。
anacron 的设定档位于 /etc/anacrontab,如前所述它是以检查时间间隔的方式来决定是否执行,因此不受系统时间设定的影响,为了要检查时间间隔必须纪录每个工作每次执行时的时间戳记(timestamp),这些档案会放置在 /var/spool/anacron 目录里面。
anacron 设定文件分为间隔周期、执行延迟时间、工作识别名称、 要执行的工作四个字段,说明如下:
字段 使用说明
间隔周期 每次执行工作时应相隔几天,小于一天的请改用 cron
执行延迟时间 当距离上次执行的时间超过时间间隔,这表示中间有执行失败的情形,这种情形下在延迟几分钟后,该工作会再尝试执行一次。
工作识别名称 用来识别不同工作,同一名称不能重复使用。
要执行的工作 通常是一个命令或 script
anacron 的设定档预设内容如下:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin;/usr/local/sbin;/usr/local/bin
# These entries are useful for a Red Hat Linux system.
1 5 run-parts /etc/cron.daily
7 10 run-parts /etc/cron.weekly
30 15 run-parts /etc/cron.monthly
这个设定可以用来确保 cron job 一定会如期执行。
at 指令用来执行一次性的工作而非周期性的工作,我们可以指定要执行的时间,它和 cron 一样会检查系统时间的设定,因此设定错误会造成工作无法正确执行,设定方式如下:
at 16:00 011503[ ENTER](排定执行时间是 2003年1月15日下午4点)
at> perl /root/backup.pl[Ctrl-D]
我们可以使用 atq 指令来查询现在尚未执行的预定工作。
如果想根据主机负载情形来决定执行时间,必须使用 batch 指令,实际上 batch 指令算是 at 的特殊应用,使用方式如下:
batch[ ENTER](不用指定执行时间)
at> perl /root/backup.pl[Ctrl-D]
[本文共有 2 页,当前是第 2 页] <<上一页 下一页>>
OVER
|