admin 管理员组文章数量: 887021
2024年2月24日发(作者:activity这么读)
FreeBSD使用手册
第12章. 存 储
(翻译中出现的任何问题或错误,请广大读者及时反馈给我:***********************)12.1概要
这章介绍了FreeBSD中磁盘的使用方法。包括后备存储磁盘,网络附属磁盘和标准的SCSI/IDE存储设备。
读完这章,你将了解到这些:
•
•
•
•
•
•
•
•
•
FreeBSD中用来描述数据组织的术语。
如何挂上和卸载文件系统。
如何在你的系统上增加硬盘。
如何设置虚拟文件系统。
如何使用配额来限制磁盘空间的使用。
如何刻录CD和DVD。
用于备份的多种存储媒介选项。
如何在FreeBSD上使用备份程序。
如何备份到软磁盘。
这一章主要介绍在FreeBSD中使用磁盘。
12.2 设备命名
下面是FreeBSD支持的物理存储设备列表:
表12-1. 物理驱动器命名规则
驱动器类型
IDE hard drives
IDE CDROM drives
SCSI hard drives and USB Mass storage
驱动设备命名
ad
acd
da
第1页
FreeBSD使用手册
devices
SCSI CDROM drives
Assorted non-standard CDROM drives
cd
mcd for Mitsumi CD-ROM, scd for Sony
CD-ROM, matcd for Matsushita/Panasonic
CD-ROM
Floppy drives
SCSI tape drives
IDE tape drives
Flash drives
RAID drives
fd
sa
ast
fla for DiskOnChip Flash device
myxd for Mylex, and amrd for AMI MegaRAID,
idad for Compaq Smart RAID.
12.3增加磁盘
假设我们要给一台只有一个磁盘的机器增加一个新的SCSI磁盘。首先,需要关掉电脑,然后按操作规程来安装驱动器、控制器和驱动程序。
以root登陆电脑。安装完驱动器后,检查一下/var/run/有没有找到新的磁盘。新增加的磁盘就是da1,我们在/1挂上它。(如果你正添加一个IDE驱动器,在4.0版以前的系统就是wd1,而4.0和以后的版本的系统就是ad1)。
因为FreeBSD运行在IBM-PC兼容机上,它必须遵循PC BIOS的分区规范。这与传统的BSD分区是不同的。一个PC的磁盘最高只能有四个BIOS(主)分区。如果磁盘只安装FreeBSD,你可以使用一种模式。另外,FreeBSD必须安装在PC BIOS支持的分区内。FreeBSD把分区叫做slices,这可能会把人搞糊涂。
在slice中,驱动器被加到/dev/da1s1e。这被读作:SCSI磁盘,编号为1(第二个SCSI磁盘),slice 1,和e BSD分区。在有些例子中,也可以简化为/dev/da1e。
12.3.1使用sysinstall
1. 使用Sysinstall
第2页
FreeBSD使用手册
你可以使用/stand/sysinstall命令,选择它的使用菜单来分区和标签一个新的磁盘(需要有root权限)。运行/stand/sysinstall,然后选择配置菜单。根据配置菜单,上下滚动,选择分区条目。接下来你会看到一个安装在你系统上的硬盘的列表。如果没有看到da1,你需要重新检查你的硬件安装,在/var/run/文件中检查输出信息。
2. FDISK 分区编辑器
选择da1,键入FDISK分区编辑器。选择A,为FreeBSD使用全部的磁盘。当被告知你是否要“remain cooperative with any future possible operating systems”时,回答YES。使用W保存刚才的修改。现在使用q退出FDISK编辑器。下面是你会看到的有关主引导区的信息。现在你已在运行的系统上添加了一个磁盘,就选择None。
3. DiskLabel编辑器
接下来是键入磁盘标签编辑器。这就是你要创建的BSD分区。一个磁盘最高可以有8个分区,标记为a-h。有几个分区标签有特殊的用途。有的分区被用作root分区(/)。你的系统磁盘(你从它那儿启动的分区)必须有一个a分区。B分区被用作交换分区,你可以用很多磁盘用作交换分区。
Sysinstall的标签编辑器支持非root和非swap分区。在标签编辑器中,可以使用C创建一个文件系统。当提示这是否是一个FS(文件系统)或swap时,选择FS,然后给出一个加载点(如:/mnt)。当在post-install模式时添加一个磁盘,sysinstall不会为你在/etc/fstab中创建,所以你指定的加载点并不重要。
你现在已经准备把新标签写到磁盘上,然后创建一个文件系统,可以按下W来实现。出现任何错误都会使它不能创建新的分区。可以退出标签编辑器然后重新执行sysinstall。
4. 完成
下面一步就是编辑/etc/fstab,为你的新磁盘创建一个记录。
12.3.2使用命令行工具
12.3.2.1使用Slices
第3页
FreeBSD使用手册
这步安装将允许你的磁盘与可能安装在你电脑上的其他操作系统一起正确工作,而不会搞乱其他操作系统的分区。强烈推荐使用这种方法来安装新磁盘。
# dd if=/dev/zero of=/dev/rda1 bs=1k count=1
# fdisk -BI da1 #初始化你的新磁盘
# disklabel -B -w -r da1s1 auto #加上标签
# disklabel -e da1s1 #现在编辑你刚才创建的磁盘分区
# mkdir -p /1
# newfs /dev/da1s1e # 为你创建的每个分区重复这个操作
# mount -t ufs /dev/da1s1e /1 # 挂上分区
# vi /etc/fstab # 完成之后,添加合适的记录到你的/etc/fstab文件
如果你有一个IDE磁盘,记得要用ad来替换大da,4.x以前的系统要用wd来替换。
12.3.2.2专用的
如果你并没有安装其他的操作系统,你可以使用专用模式。记住这种模式可能会弄乱microsoft的操作系统;但不会对它进行破坏。
# dd if=/dev/zero of=/dev/rda1 bs=1k count=1
# disklabel -Brw da1 auto
# disklabel -e da1 #创建‘e’分区
# newfs -d0 /dev/rda1e
# mkdir -p /1
# vi /etc/fstab # 为/dev/da1e添加一条记录
# mount /1
另外一种方法:
# dd if=/dev/zero of=/dev/rda1 count=2
# disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin
# newfs /dev/rda1e
# mkdir -p /1
第4页
FreeBSD使用手册
# vi /etc/fstab # add an entry for /dev/da1e
# mount /1
12.4 网络,内存和基本文件系统
除了安装在你电脑上的物理硬件:软盘驱动器、CD、硬盘等,其他形式的磁盘----虚拟磁盘也能被FreeBSD认出来。这些包括网络文件系统和coda,象md这样的内存文件系统,还有vnconfig创建的后备文件系统。
12.4.1 vnconfig: 后备文件系统
Vnconfig可以配置和启用vnode伪磁盘设备。一个vnode是一个文件的描述,是文件活动的中心。这是说vnconfig使用文件来创建和操作一个文件系统。
挂上一个存在的文件系统的映象:
例12-1.使用vnconfig挂上一个存在的文件系统的映象
# vnconfig vn0 diskimage
# mount /dev/vn0c /mnt
使用vnconfig创建一个新的文件系统映象:
例12-2.使用vnconfig创建一个新的后备磁盘
# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
# vnconfig -s labels -c vn0 newimage
# disklabel -r -w vn0 auto
# newfs vn0c
警告:2048 sector(s) in last cylinder unallocated
/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
第5页
FreeBSD使用手册
32
# mount /dev/vn0c /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mnt
12.4.2 md: 内存文件系统
md是一个简单,高效创建内存文件系统的方法。
例如:
例12-3. md memory disk
# dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
# mount /dev/md0c /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mnt
12.5文件系统配额
配额是操作系统的一个可选择的特性,它可以允许你限制用户使用的磁盘空间的大小或是使用的文件的数量。这可以防止某个用户强占所有的磁盘空间。
12.5.1配置你的系统来启用磁盘配额
在决定使用磁盘配额前,确信磁盘配额已经在你的内核中配置好了。只要在你的内核配置文件中添加下面一行就行了:
options QUOTA
第6页
FreeBSD使用手册
在默认情况下,GENERIC内核是不会启用这个功能的,所以你必须配置、重建和安装一个定制的内核。请参考FreeBSD内核配置 这节了解更多有关内核配置的信息。
接下来,你需要在/etc/中启用磁盘配额。可以通过添加下面这行来完成:enable_quotas=“YES”
很好的控制你的配额启动情况,这是另外一个可利用的变量。通常启动时,集成在每个文件系统上的配额会被配额检查程序自动检查。配额检查功能能够确保在配额数据库中的数据正确地反映了文件系统的数据情况。这是一个很耗时间的处理进程,它会影响你系统的启动时间。如果你想跳过这一步,可以加入下面这一行:
check_quotas=“NO”
如果你运行的是3.2-RELEASE以前的版本,配置比较简单,只需要配置一个选项。在你的/etc/中设置下面这行:
check_quotas=“YES”
最后,你要编辑/etc/fstab文件,在每一个文件系统基础上启用磁盘配额。这是你可以启用用户和组配额,或启用所有你的所有文件系统的地方。要在一个文件系统上启用每个用户的配额,可以在/etc/fstab记录处为你要启用配额的文件系统添加下面一行。例如:
/dev/da1s2g /home ufs rw,userquota 1 2
同样的,要启用组配额,使用组配额选项来代替用户配额关键字。要同时启用用户和组配额,可以这样做:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
默认情况下,配额文件是存放在文件系统的以和命名的根目录下。可以看看fstab的联机手册了解更多信息。即使联机手册说你可以为配额文件指定一个可改变的区域,这里并不推荐这样做,因为不同的配额工具不一定遵循这样的规则。到这儿,你可以用你的新内核重新启动你的系统。/etc/rc将自动运行适当的命令来创建最初的配额文件,所以并不需要手动来创建任何零长度的配额文件。
第7页
FreeBSD使用手册
在通常的操作过程中,你并不要求手动运行quotacheck,quotaon,quotaoff命令。然而,你可能需要阅读与他们的操作相似的联机手册。
12.5.2设置配额限制
一旦你配置好了你启用配额的系统,可以检查一下它们是否真的有用。可以这样做:
# quota -v
你应当为启用配额的每个文件系统看看一个磁盘使用和当前配额限制的在线摘要。你现在可以使用edquota命令准备启用配额限制。
你有几个有关如何强迫限制用户或组可以分配到的磁盘空间大小的选项。你可以限制磁盘空间的分配,或文件的数量,或两者都有。这些限制中的每一个最终可分为两类:硬限制和软限制。
一个硬限制可能无法被超越。一旦一个用户访问到了他们的硬限制,他们无法在文件系统中得到任何分配。例如,如果用户在文件系统上有一个500 blocks的硬限制,而当前已经分派了490个blocks,用户就只能分派剩下的10个blocks。如果硬是要分派11个blocks将会失败。
软限制可以被有时间限制性地超越。这段时间可以被理解为宽限期,默认是一个星期。如果一个用户延缓时间太长的话,软限制将会变成硬限制,根本就不允许被指派。当用户在软限制延后时,宽限期将会被重新安排。
下面是一个当你运行edquota命令时看到的例子。当edquota命令被调用时,你会被转移进EDITOR环境变量指派的编辑器中,允许你编辑配额限制。
# edquota -u test
Quotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
第8页
FreeBSD使用手册
inodes in use: 0, limits (soft = 50, hard = 60)
在每一个文件系统上,你通常会看到两行。一行是block限制,另一行是inode限制。简单地改变你要修改的配额限制的值。例如,提高这个用户软限制的数值到500,硬限制的数值到600。
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
到:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
当你离开编辑器的时候,新的配额限制设置将会被保存。
12.5.3检查配额限制和磁盘使用
你既可以使用quota也可以使用requota命令来检查配额限制和磁盘使用情况。Quota命令能够检查单个用户和组的配额和磁盘使用情况。只有超级用户才可以检查其他用户的配额和磁盘使用情况。Requota命令可以用来了解所有配额和磁盘的使用情况。
下面是一个使用quota –v命令后的输出情况。
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit
grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
上面的例子中,在/usr文件系统中,这个用户超越了软限制(50 blocks)15个blocks,而且它有5天的宽限期。
12.5.4通过NFS进行配额
Quotas能够在NFS服务器上被quota子系统强迫使用。在NFS客户端,d守护程序可以使quota信息用于quota命令,可以允许用户察看他们的quota统计信息。
第9页
FreeBSD使用手册
可以这样在/etc/中启用d:
rquotad/1 dgram rpc/udp wait root /usr/libexec/d d
现在重起inetd:
# kill -HUP ‘cat /var/run/‘
12.6创建和使用光学设备(CD和DVD)
12.6.1介绍
CD与普通的磁盘相比有很多不同的特性。最初,它们是不能被用户写入的。CD有tracks,要在FreeBSD中制作一个CD,你要准备将要写到CD上的数据文件,然后根据每个tracks写入到CD。
ISO 9660文件系统被设计用来处理这些差异。它通常不会对文件系统作限制。幸运的是,它提供了一个可扩展的机制允许在制作CD时超越这些限制。
Mkisofs程序能用来生成一个包含iso9660文件系统的数据文件。它有很多支持的扩展选项,下面会具体描述。你可以从/usr/ports/sysutils/mkisofs port中安装它。
使用哪个工具来刻录CD依赖于你的CD刻录机是ATAPI的还是其他类型的。ATAPI CD使用burncd程序。SCSI和USB CD刻录机使用cdrecord程序。
12.6.2 mkisofs
mkisofs制作一个ISO9660的文件系统,简单用法如下:
# mkisofs -o /path/to/tree
这个命令将创建一个包含ISO9660文件系统的映象文件。在处理过程中,它将文件名称影射为标准的ISO 9660文件系统的文件名,它将排除那些不典型的ISO文件系统的文件。可以看看mkisofs的详细描述,以便更好地使用它。
有很多选项能够用来克服那些限制。特别的,-R选项能够启用Rock Ridge扩展,-J选项能启用用于microsoft系统的Joliet扩展,-hfs能用来创建用于MAC的HFS文件系统。
第10页
FreeBSD使用手册
对于那些即将要在FreeBSD系统中使用的CD来说,-U能用来消除所有文件名的限制。当使用-R选项时,它会产生一个文件系统映象。
最后一个通常使用的选项是-b。这可以用来指定启动映象的位置,以产生一个叫做“El
Torito”的启动光盘。
12.6.3 burncd
如果你用的是ATAPI的CD burner,你可以使用burncd命令来刻录ISO映象到CD上。Burncd是基本系统的一部分,可以使用/usr/sbin/burncd来安装。用法很简单,如下:
# burncd -f
cddevice data
fixate
刻录的一个拷贝。默认的设备是/dev/acd0c。看看burncd的选项来设置写入速度,刻完之后退出CD,然后写入声音数据。
12.6.4 cdrecord
如果你没有一个ATAPI的CD burner,你必须使用cdrecord来刻录你的CD。Cdrecord基本系不是基本系统的一部分;你必须从sysutils/cdrtools或设当的package中安装它。统的变化可能会引起这个程序的错误,可能是由“coaster”引起的。当你升级系统时,你需要升级port,或者如果你已升级到-STABLE,你使用新版本时也要升级port。
Cdrecord有很多选项,基本用法与burncd相似。刻录一个ISO9660映象文件只需这样做:
# cdrecord dev=device
使用cdrecord的比较巧妙的方法是找到使用的dev。要找到正确的设置,可以使用cdrecord的-scanbus标记,这会产生这样的结果:
# cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
第11页
FreeBSD使用手册
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *
这个列表列出了设备的适当的dev值。在这个例子中,CRW是1,5,0,所以正确的输入应是dev=1,5,0。有一个很容易的方法可以指定这个值;看看cdrecord的介绍。在那儿也可以找到有关音轨,控制速度和其它的东西。
12.7 RAID
12.7.1 软件RAID
第12页
FreeBSD使用手册
12.7.1.1 ccd (连接磁盘配置)
今天几乎每个人都收集了很多的多媒体文件。从mp3到视频文件。我也有很多转换过的mp3音乐文件。我现在面临一个问题是如何存储这些文件。
选择一个比较好的解决方案,最重要的是产品的速度、性能和成本。通常这三者不可能都满足,要获得比较快,和大容量的存储设备,就比较昂贵。但如果将成本降下来,那它的速度或可靠性就会打折扣。我在设计系统时,希望在两者之间达到一个平衡。对我来说,速度不是非常重要的,因为绝大多数的使用是通过百兆以太网来完成的。
通过几个磁盘来传输文件要快得多。最后,还要考虑可靠性。存放在这个大容量的存储设备上的所有数据都被备份到了CD-R盘上了。这个驱动器主要充当实时存储的功能,所以如果一个驱动器坏了,我就可以换掉它,重建文件系统,把数据从CD-R上拷回来。
总的计算一下,我需要在有限的成本下得到最大的存储容量。大型的IDE磁盘现在是一天比一天便宜。我发现Western Digital 30.7gb 5400 RPM硬盘只需要150美元。我买了三个,加起来足有90GB的存储容量。
12.7.1.1.1 安装硬件
我在一个已安装有一个IDE硬盘的系统上再安装一个磁盘。最好是每个IDE磁盘都使用一个自己的IDE控制器,但要求有两个IDE控制器可能成本比较高。所以,我把两个磁盘一个设置成主盘,一个设置成从盘。一个放在第一个IDE控制器上作为系统磁盘,其他两个放在第二个控制器上。
重启动后,系统BIOS被配置成自动检测硬盘。FreeBSD检测到了它们:
ad0: 19574MB
ad1: 29333MB
ad2: 29333MB
ad3: 29333MB
第13页
FreeBSD使用手册
如果FreeBSD没有检测到它们,请确定它们的跳线是否正确。接下来要考虑的是,如何在一些特殊的配置中,ccd是比较好的选择,创建文件系统。我对vinum和ccd有一些研究。因为它比较简单。Vinum显得有点超出了我的需要。
12.7.1.1.2 安装CCD
CCD允许我将几个相同的磁盘通过一个逻辑文件系统连接起来。要使用CCD,我需要在内核中配置CCD支持选项。我把这行加入到我的内核配置文件中,然后重建内核:
pseudo-device ccd 4
在FreeBSD 4.0和以后版本中,CCD可以作为一个内核模块来加载。这儿是我如何给磁盘做标记的:
disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 auto
这儿把整个硬盘创建成ad1c, ad2c和ad3c。下一步是改变disklabel的类型。
disklabel -e ad1
disklabel -e ad2
disklabel -e ad3
这儿在每个已经设置了EDITOR环境变量的磁盘上打开了disklabel,在我的例子中,是vi。你可以看到:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
我需要添加一个“e“分区给ccd用。这可以是“c”分区的一个拷贝,但fstype必须是4.2BSD。做完之后,你会看到下面这些:
第14页
FreeBSD使用手册
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
12.7.1.1.3建造文件系统
现在,我已给每个磁盘都加上了标签,我需要建构ccd。要这样做,我需要一个叫ccdconfig的工具,在这儿是/dev/ccd0c。ccdoc的设备节点可能不存在,所以你需要创建它,执行下面的命令:
cd /dev
sh MAKEDEV ccd0
Ccdconfig的最后配置是设备的排列问题。执行下面的命令:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
这样就配置好了ccd。我现在要创建文件系统了。
newfs /dev/ccd0c
12.7.1.1.4自动创建
最后,如果我要挂上ccd,我需要先配置它。我把当前的配置文件写入/etc/中:
ccdconfig -g > /etc/
当我重新启动系统时,脚本/etc/rc就运行ccdconfig –C。这样就能自动配置ccd了。
如果你启动进入了单用户模式,你在挂上ccd之前,你需要执行下面的命令来配置队列:
ccdconfig -C
然后,我们需要为ccd在/etc/fstab中配置一个记录,以便在启动时能被挂上。
第15页
FreeBSD使用手册
/dev/ccd0c /media ufs rw 2 2
12.8 用磁带机备份
主要的磁带机有4mm、8mm、QIC、mini-cartridge和DLT。
12.8.1 4mm (DDS: Digital Data Storage)
在Conner买下Archive (主要的QIC制造商)之后,4mm磁带机取代了QIC而成为工作站备份资料的设备。它比8mm小(3 x 2 x 0.5 inches, 76 x 51 x 12 mm ) ,但对于资料保存的可信度仍不及8mm ,很安静,同时它的卡也比8mm来的便宜。它和8mm一样,读写头的寿命都不长,因为它们同样是用螺旋状的方式来扫描的。数据传输的速度,约在150 KB/s到500 KB/s之间,可存储的空间从1.3 GB到2.0 GB,硬件压缩可使空间加倍。磁带库单元可以有6台磁带机,120个磁带匣,以自动切换的方式使用同一个磁带柜, 磁带库的容量可达240 GB 。
4mm和8mm同样都是使用螺旋扫描的方式,所有螺旋扫描的优点及缺点,都可在4mm和8mm磁带机上看到。磁带在经过2000次的使用或100次的满载后,就该退休了。
12.8.2 8mm (Exabyte)
8mm磁带机是最常见的SCSI磁带机,也是磁带交换的最佳选择,几乎每个工作站都有一台exabyte 2 GB 8mm磁带机。8mm磁带机可信度高、方便、且安静。卡匣小(4.8 x 3.3 x 0.6
inches,122 x 84 x 15 mm) 而且不贵。8mm磁带机的下边是一个短短的读写头,而读写头的寿命取决于磁带经过读写头时,高速的相对运动情况。数据传输的速度,约在250 KB/s到500 KB/s之间,可存储的空间从300 MB到7 GB,硬件压缩可使空间加倍。磁带库单元可以有6台磁带机,120个磁带匣,以自动切换的方式使用同一个磁带柜,磁带库的容量可达840 GB 。
资料是使用螺旋扫描的方式记录在磁带上的,读写头和磁带约相差6度,磁带以270度缠绕着轴,并抵住读写头,轴适时地旋转,使得磁带具有高密度,并可使磁道紧密地分布,从一端到另一端。
12.8.3 QIC
QIC-150是最常见的磁带机。和4 mm及8 mm比较,QIC磁带机相当昂贵,最高可能要5倍的价钱(每GigaByte)。假如你需要的是六台左右的磁带机,那么QIC将是正确的选择。QIC是最常见的磁带机,每个工作站都会有一台QIC磁带机。QIC磁带机具有几种不同的第16页
FreeBSD使用手册
存储密度。QIC磁带机并不”安静”,读写时的声音都可清淅地听到。QIC磁带机的规格:6
x 4 x 0.7 inches,15.2 x 10.2 x 1.7 mm 。Mini-cartridges用的同样是1/4”宽的磁带,将在后面讨论到。QIC不具有磁带库及切换的功能。
数据传输的速度介于150 KB/s和500 KB/s之间,可存储的空间从40 MB到15 GB。较新的QIC磁带机具有硬件压缩的功能。QIC的使用率愈来愈低,渐渐被DAT所取代。
资料以磁道的方式记录在磁带上,磁道数及磁道的宽度会根据容量而有所不同。通常新的磁带机具有向后兼容(backward-compatibility)的读取功能(通常也具备写入的功能)。对于资料的安全性,QIC具有不错的评价。磁带在经过5000次的使用后,就该退休了。
12.8.4 XXX* Mini-Cartridge
12.8.5 DLT
在这个章节所列出的磁带机中,DLT具有最快的数据传输速率。1/2”(12.5 mm)的磁带包含在单轴的磁带匣(4 x 4 x 1 inches,100 x 100 x 25 mm)中。磁带匣的一边是一个旋转匣道,通过匣道的开合,可以让磁带卷动。磁带匣内只有一个轴,而本章中所提到的其它磁带匣都是有两个轴的(9 track磁带机例外)。
数据传输的速度约1.5 MB/s,是4mm,8mm和QIC磁带机的三倍,可存储的空间从10 GB到20 GB,具有磁带机数据库。磁带机数据库单元可以有1到20台磁带机,5到900个磁带匣,磁带机数据库的容量可达50 GB到9 TB 。
资料存储在平行于磁带运行方向的磁道上(同QIC磁带),一次写入两个磁道。读写头的寿命相当长,每当磁带停止前进,磁带与读写头之间没有相对运动。
12.8.6 AIT
AIT是sony开发的一种新格式,每个磁带最高可以存储50GB。磁带机使用内存芯片来保存磁带上的索引内容。这个索引能够被磁带机驱动器快速阅读来搜索磁带机上文件所处的位置,而不象其他的磁带机需要化几分钟的时间才能找到文件。象SAMS:Alexandria这样的软件:能够操作四十或者更多的AIT磁带库,直接使用内存芯片来进行通讯把内容显示在屏幕上,以决定把什么文件备份到哪个磁带上,加载,恢复数据。
12.8.7使用新的磁带
当你在一块完全空白的磁带上尝试写入数据时,你会得到类似下面这样的错误信息:
sa0(ncr1:4:0): NOT READY asc:4,1
第17页
FreeBSD使用手册
sa0(ncr1:4:0): Logical unit is in process of becoming ready
信息指出这块磁带没有Identifier Block (block编号0)。在QIC-525之后的所有QIC磁带,都采用QIC-525标准,必须写入一个Identifier Block。对于这种问题,有以下两种解决的办法:
用mt fsf 1可以使磁带机对磁带写入Identifier Block。
使用面版上的按钮退出磁带。
再插入一次,并dump资料到磁带上。
这时dump会传回DUMP: End of tape detected ,然后你会得到这样的错误信息:HARDWARE FAILURE info:280 asc:80,96
这时用mt rewind来倒转磁带,磁带操作的后续动作都完成了。
12.9备份程序
主要有三个主要的备份程序:dump,tar,cpio.
12.9.1 Dump和Restore
dump和restore是UNIX传统的备份程序。它以block为单位来备份资料,而不是以文件,链接或目录来备份资料。dump备份的是device整个filesystem,不能只备份一个filesystem的部分或是用到两个以上filesystem的目录树。如果是遇到soft link ln或是mounting point,则只会记录下building block。dump出现于AT&T UNIX的Version 6 (约1975) 。默认的参数适用于9-track磁带(6250 bpi),所以如果要用高密度的磁带(最高可达62.182 ftpi),就不能用默认的参数,而要另外指定参数。
rdump和rrestore可以通过网络,在另一台计算机的磁带机上备份资料。这两个程序都是依靠rcmd和ruserok来访问远程的磁带机。因此,运行备份的使用者必须要有远程主机的rhosts访问权。rdump和rrestore的参数必需适用于远程主机 (例如,当你从FreeBSD连到一台Sun工作站komodo去使用磁带机时,使用/sbin/rdump 0dsbfu 54000 13000 126
komodo:/dev/nrsa8 /dev/rda0a 2>&1) 。要注意的是,你必需检查你的情况,因为执行远程命令会牵涉到“安全”(security)的问题(指资料的安全性)。也可以通过ssh用一个更安全的方式来使用rdump和rrestore。
例12-4.通过ssh使用 rdump
# /sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish \
第18页
FreeBSD使用手册
********************************.comddof=/mybigfiles/
12.9.2 tar
tar同样是在AT&T Unix Version 6 (约1975)时出现的。tar可以直接对filesystem做处理:它直接将文件和目录写到磁带上,tar不支持像cpio那样多的选项,但tar不需要用像cpio那样奇怪的command pipeline。
许多版本的tar不支持通过网络备份,而GNU版的tar(FreeBSD用的就是GNU版的) 提供相同于rdump的参数来使用远程的设备。例如要tar Sun工作站komodo上一台Exabyte磁带机,就使用:/usr/bin/tar cf komodo:/dev/nrsa8 . 2>&1。对于不支持远程设备的tar,可以使用一个pipeline和rsh来传送资料给远程的磁带机。
# tar cf - . | rsh hostname dd of=tape-device obs=20b
如果你对通过网络来备份会有安全问题,你应当使用ssh,而不是使用rsh.
12.9.3 cpio
cpio是Unix最早用来做文件交换的磁带机程序。它具有做byte-swapping的选项,可以用几种不同的格式写入,并且可以将资料pipe给其它程序。cpio没办法自动查找directory tree内的文件列表,必须通过标准输入(stdin)来指定。
cpio不支持通过网络的备份方式。你可以使用pipeline和rsh来传送资料给远程的磁带机。
12.9.4 pax
pax是IEEE/POSIX标准的程序。由于多年来各种不同版本的tar和cpio间的不兼容,为了防止这种情况,并使其标准化,POSIX出了这套新的工具程序。pax尝试可以读写各种cpio和tar的格式,并可以自己增加新的格式。它的命令较类似cpio。
12.9.5 Amanda
Amanda (Advanced Maryland Network Disk Archiver) 并非单一的程序,而是一个主从式
(client/server) 的备份系统。一台Amanda server可以备份任意数量,执行Amanda client ,或是连上Amanda server的计算机上的资料于一台磁带机上。一个常见的问题是,将资料写入磁带机的时间,超过取得资料的时间,而Amanda解决了这个问题。它使用一个“holding
disk”来同时备份几个filesystem。Amanda建立 “archive sets”:一组磁带,用来备份在Amanda的组态文件中所列出的完整的filesystem。
第19页
FreeBSD使用手册
Amanda组态文件提供完整的备份控制及Amanda产生的网络传输。Amanda可以使用上述任何一个备份程序来写入磁带。Amanda可能是以port或package来取得,并非系统默认就有的。
12.9.6 Do Nothing
“Do nothing”不是一个程序,而是最被广泛使用的备份策略。不需要预算,不需要备份的计划表,全部都不用。如果你的资料发生了什么问题,忽略它!
假如你的时间和资料不值得你做这些事,那么“Do nothing”将是你最好的备份程序。要注意的是,Unix是相当好用的工具,你可能在几个月内,就发现你已经收集了不少,对你来说,相当具有价值的东西。
“Do nothing”对于像/usr/obj或其它可由你的计算机产生的文件来说,是最好的方法。例如你从SGML文件所产生的HTML文件,就不需要备份,而应该备份的是SGML文件。
12.9.7哪个备份程序最好?
在dump时期,Elizabeth D. Zwicky测试了所有以上所列出的备份程序。在各式各样怪异的filesystem中,dump是你明智的抉择。Elizabeth建立起各式各样,奇怪,正常的filesystem,并用各种备份程序,测试在各种filesystem上备份及回存资料。这些怪异之处包括:具有hole和一个null block的文件,文件名具有funny character,无法读写的文件及设备,在备份时改变文件大小,在备份时建立或删除的文件。她将结果刊出在LISA V in Oct. 1991.
torture-testing Backup and Archive Programs(/zwicky_neu/)。
12.9.8紧急恢复程序
12.9.8.1在出现灾难前
在遇到任何的灾难前,你只需要做以下四个步骤:
第一,打出你的每个磁盘驱动器代号 (例如: disklabel da0 | lpr),文件系统表
(/etc/fstab) ,以及所有的启动信息,并保留两份。
第二,确定遇到情况时,用来启动及修复的软盘 (、) 具有你所有的设备代号(并且能够使用)。最简单的方法是用软盘启动,然后检查启动信息,如果你的设备都有被列出,并且可以正常使用,就可以跳到第三步。
否则,你必须建立两张传统的可启动软盘,并包含fdisk、disklabel、newfs、mount以第20页
FreeBSD使用手册
及你所使用的备份程序。这些程序必需被静态连接。如果你使用的是dump,那么这张软盘就必需包含restore。
第三,定期将资料备份到磁带。任何在你上次备份后的改变都无法恢复。记得将磁带写保护。
第四,测试你在第二步所建立的软盘及备份的磁带,将过程记录下来,并和这张可启动的软盘、磁带放在一起。也许你在回存时会想要, 而这份记录将防止你破坏你的磁带(怎么说呢?因为你可能将tar xvf /dev/rsa0打成tar cvf /dev/rsa0而重写了你的备份磁带)。
为了安全,你可以每次都做两份备份磁带及一张启动磁盘,并将其中一份备份磁带存放在远方。远方不是指同一栋办公大楼的地下室 (世贸中心的一些公司应该学到了一些教训),而是真的要让你的磁带离你的计算机远远的。
以下是一个建立启动磁盘的shell script例子:
#!/bin/sh
#
# create a restore floppy
#
# format the floppy
#
PATH=/bin:/sbin:/usr/sbin:/usr/bin
fdformat -q fd0
if [ $? -ne 0 ]
then
echo "Bad floppy, please use a new one"
exit 1
第21页
FreeBSD使用手册
fi
# place boot blocks on the floppy
#
disklabel -w -B /dev/fd0c fd1440
#
# newfs the one and only partition
#
newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a
#
# mount the new floppy
#
mount /dev/fd0a /mnt
#
# create required directories
#
mkdir /mnt/dev
mkdir /mnt/bin
第22页
FreeBSD使用手册
mkdir /mnt/sbin
mkdir /mnt/etc
mkdir /mnt/root
mkdir /mnt/mnt # for the root partition
mkdir /mnt/tmp
mkdir /mnt/var
#
# populate the directories
#
if [ ! -x /sys/compile/MINI/kernel ]
then
cat << EOM
The MINI kernel does not exist, please create one.
Here is an example config file:
#
# MINI -- A kernel to get FreeBSD on onto a disk.
#
machine "i386"
cpu "I486_CPU"
ident MINI
第23页
FreeBSD使用手册
maxusers 5
options INET # needed for _tcp _icmpstat _ipstat
# _udpstat _tcpstat _udb
options FFS #Berkeley Fast File System
options FAT_CURSOR #block cursor in syscons or pccons
options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device
options NCONS=2 #1 virtual consoles
options USERCONFIG #Allow user configuration with -c XXX
config kernel root on da0 swap on da0 and da1 dumps on da0
controller isa0
controller pci0
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk fd0 at fdc0 drive 0
controller ncr0
controller scbus0
第24页
FreeBSD使用手册
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
device da0
device da1
device da2
device sa0
pseudo-device loop # required by INET
pseudo-device gzip # Exec gzipped 's
EOM
exit 1
fi
cp -f /sys/compile/MINI/kernel /mnt
gzip -c -best /sbin/init > /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
第25页
FreeBSD使用手册
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# create the devices nodes
#
cd /mnt/dev
./MAKEDEV std
第26页
FreeBSD使用手册
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# create minimum filesystem table
#
cat > /mnt/etc/fstab < /dev/fd0a / ufs rw 1 1 EOM # # create minimum passwd file # cat > /mnt/etc/passwd < root:*:0:0:Charlie &:/root:/bin/sh EOM 第27页 FreeBSD使用手册 cat > /mnt/etc/ < root::0:0::0:0:Charlie &:/root:/bin/sh EOM chmod 600 /mnt/etc/ chmod 644 /mnt/etc/passwd /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/ # # umount the floppy and inform the user # /sbin/umount /mnt echo "The floppy has been unmounted and is now ready." 12.9.8.2出现灾难之后 主要的问题在于:你的硬件还能用吗?由于你已经做好定期的备份工作,所以你不必担心软件的问题。 假如你的硬件已经损坏,首先,你必须先将已损坏的硬件更换掉。 如果你的硬件没有问题,再检查一下你的软盘。如果你用的是传统的启动磁盘,以single-user (在出现boot: 后键入 -s),并跳过下面这段。 如果你使用的是具有和的启动磁盘,把这段看完。首先,用这张磁盘启动。当屏幕出现安装选单时,选择Fixit—Repair mode with CDROM or floppy.。根据屏幕的提示,插入有的磁盘,restore,其它你需要用到的程序就会出现在 /mnt2/stand。 分别修复每一个文件系统。 试着mount你的第一个磁盘的root分区 (例如:mount /dev/da0a /mnt)。假如这个磁第28页 FreeBSD使用手册 盘代号已经损坏,使用disklabel来重新分割并重新分配磁盘代号(利用你之前所保留下来的数据)。 使用newfs来建立文件系统,并重新mount软盘read-write的root分区(mount -u -o rw /mnt)。 然后使用你的备份程序及备份磁带来修复文件系统 (例如:restore vrf /dev/sa0)。Unmount这个文件系统 (例如:umount /mnt) 。对于每个损坏的文件系统都重复一次。 当你的系统正常打开后,将你的资料备份到新的磁带。任何造成资料丢失的灾难都可能再次发生。现在花一些时间,也许可以使你免于下次的灾难。 12.10用软盘备份 12.10.1我能够使用软盘来备份数据吗? 软磁盘通常是用来备份的设备中不太适当的设备: 1. 这个设备不太可靠,特别是对长期使用的。 2. 备份和恢复都很慢。 3. 他们只有非常有限的存储容量 然而,如果你没有其他的备份数据的方法,那软盘备份总比没有备份要好。 如果你必须使用软盘的话,你必须确保盘片的质量。软盘在办公室中使用已经有许多年了。最好使用一些名牌厂商的新产品,以确保质量。 12.10.2那我如何备份我的数据到软盘呢? 最好的备份数据到软盘的方法是使用tar程序加上-M选项,它可以允许将数据备份到多张软盘上。 要备份当前目录和子目录中所有的文件可以使用这个命令(需要有root权限): # tar Mcvf /dev/rfd0 * 当第一张盘满的时候,tar会指示你插入下一张盘,插入第二张盘之后就打回车。这个步骤可能需要重复很多次,直到这些文件备份完为止。 12.10.3我可以压缩我的备份吗? 不幸的是,tar在针对多卷文件是不允许使用-z选项。当然,你可以用gzip压缩所有的文件,把他们打包到软盘,以后在用gunzip解开。 第29页 FreeBSD使用手册 12.10.4我如何恢复我的备份? 要恢复使用的所有文件: # tar Mxvf /dev/rfd0 要恢复第一张软盘起始使用的特殊文件: # tar Mxvf /dev/rfd0 filename Tar程序会提示你插入后面的软盘,直到它找到所要求的文件。 如果你知道哪个文件在哪个盘上,你就可以插入那张盘,然后使用上面同样的命令。如果软盘上的第一个文件与前面的文件是连续的,那tar命令会警告你它无法恢复,即使你不要求它这样做! 第30页
版权声明:本文标题:FreeBSD使用手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708781585h531413.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论