目录 12 存储 12.1 概要 12.2 设备命名 12.3 增加磁盘 12.4 网络,内存和基本文件系统 12.5 文件系统配额 12.6 创建和使用光学设备 12.7 RAID 12.8 用磁带机备份 12.9 备份程序 12.10 用软盘备份
============================================================= 第12 章. 存储 ============================================================= (翻译中出现的任何问题或错误,请广大读者及时反馈给我:FreeBSDhandbook@163.com) 12.1 概要 这章介绍了FreeBSD 中磁盘的使用方法。包括后备存储磁盘,网络附属磁盘和标准的 SCSI/IDE 存储设备。 读完这章,你将了解到这些: . FreeBSD 中用来描述数据组织的术语。 . 如何挂上和卸载文件系统。 . 如何在你的系统上增加硬盘。 . 如何设置虚拟文件系统。 . 如何使用配额来限制磁盘空间的使用。 . 如何刻录CD 和DVD。 . 用于备份的多种存储媒介选项。 . 如何在FreeBSD 上使用备份程序。 . 如何备份到软磁盘。 这一章主要介绍在FreeBSD 中使用磁盘。 12.2 设备命名 下面是FreeBSD 支持的物理存储设备列表: 表12-1. 物理驱动器命名规则 驱动设备命名驱动器类型 ad IDE hard drives acd IDE CDROM drives SCSI hard drives and USB Mass storage da 第1 页FreeBSD 使用手册 devices cd SCSI CDROM drives mcd for Mitsumi CD-ROM, scd for Sony Assorted non-standard CDROM drives CD-ROM, matcd for Matsushita/Panasonic CD-ROM fd Floppy drives sa SCSI tape drives ast IDE tape drives fla for DiskOnChip Flash device Flash drives myxd for Mylex, and amrd for AMI MegaRAID, RAID drives idad for Compaq Smart RAID. 12.3 增加磁盘 假设我们要给一台只有一个磁盘的机器增加一个新的SCSI 磁盘。首先,需要关掉电脑, 然后按操作规程来安装驱动器、控制器和驱动程序。 以root 登陆电脑。安装完驱动器后,检查一下/var/run/dmesg.boot 有没有找到新的 磁盘。新增加的磁盘就是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/dmesg.boot 文件中检查输出信息。 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/rc.conf 中启用磁盘配额。可以通过添加下面这行来完成: enable_quotas=“YES” 很好的控制你的配额启动情况,这是另外一个可利用的变量。通常启动时,集成在每个 文件系统上的配额会被配额检查程序自动检查。配额检查功能能够确保在配额数据库中的数 据正确地反映了文件系统的数据情况。这是一个很耗时间的处理进程,它会影响你系统的启 动时间。如果你想跳过这一步,可以加入下面这一行: check_quotas=“NO” 如果你运行的是3.2-RELEASE 以前的版本,配置比较简单,只需要配置一个选项。在你 的/etc/rc.conf 中设置下面这行: check_quotas=“YES” 最后,你要编辑/etc/fstab 文件,在每一个文件系统基础上启用磁盘配额。这是你可 以启用用户和组配额,或启用所有你的所有文件系统的地方。要在一个文件系统上启用每个 用户的配额,可以在/etc/fstab 记录处为你要启用配额的文件系统添加下面一行。例如: /dev/da1s2g /home ufs rw,userquota 1 2 同样的,要启用组配额,使用组配额选项来代替用户配额关键字。要同时启用用户和组 配额,可以这样做: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 默认情况下,配额文件是存放在文件系统的以quota.user 和quota.group 命名的根目 录下。可以看看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 客户端,rpc.rquotad 守护程序可以使quota 信息用于quota 命令,可以允许用户察看他们的quota 统计信息。 第9 页FreeBSD 使用手册 可以这样在/etc/inetd.conf 中启用rpc.rquotad: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad 现在重起inetd: # kill -HUP ‘cat /var/run/inetd.pid‘ 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 imagefile.iso /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 imagefile.iso fixate 刻录imagefile.iso的一个拷贝。默认的设备是/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 imagefile.iso 使用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 <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 第13 页FreeBSD 使用手册 如果FreeBSD 没有检测到它们,请确定它们的跳线是否正确。接下来要考虑的是,如何 创建文件系统。我对vinum 和ccd 有一些研究。在一些特殊的配置中,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/ccd.conf 中: ccdconfig -g > /etc/ccd.conf 当我重新启动系统时,脚本/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& |