目錄
12 存儲(chǔ)
12.1 概要
12.2 設(shè)備命名
12.3 增加磁盤(pán)
12.4 網(wǎng)絡(luò),內(nèi)存和基本文件系統(tǒng)
12.5 文件系統(tǒng)配額
12.6 創(chuàng)建和使用光學(xué)設(shè)備
12.7 RAID
12.8 用磁帶機(jī)備份
12.9 備份程序
12.10 用軟盤(pán)備份
=============================================================
第12 章. 存儲(chǔ)
=============================================================
(翻譯中出現(xiàn)的任何問(wèn)題或錯(cuò)誤,請(qǐng)廣大讀者及時(shí)反饋給我:freebsdhandbook@163.com)
12.1 概要
這章介紹了FreeBSD 中磁盤(pán)的使用方法。包括后備存儲(chǔ)磁盤(pán),網(wǎng)絡(luò)附屬磁盤(pán)和標(biāo)準(zhǔn)的
SCSI/IDE 存儲(chǔ)設(shè)備。
讀完這章,你將了解到這些:
. FreeBSD 中用來(lái)描述數(shù)據(jù)組織的術(shù)語(yǔ)。
. 如何掛上和卸載文件系統(tǒng)。
. 如何在你的系統(tǒng)上增加硬盤(pán)。
. 如何設(shè)置虛擬文件系統(tǒng)。
. 如何使用配額來(lái)限制磁盤(pán)空間的使用。
. 如何刻錄CD 和DVD。
. 用于備份的多種存儲(chǔ)媒介選項(xiàng)。
. 如何在FreeBSD 上使用備份程序。
. 如何備份到軟磁盤(pán)。
這一章主要介紹在FreeBSD 中使用磁盤(pán)。
12.2 設(shè)備命名
下面是FreeBSD 支持的物理存儲(chǔ)設(shè)備列表:
表12-1. 物理驅(qū)動(dòng)器命名規(guī)則
驅(qū)動(dòng)設(shè)備命名驅(qū)動(dòng)器類(lèi)型
ad IDE hard drives
acd IDE CDROM drives
SCSI hard drives and USB Mass storage da
第1 頁(yè)FreeBSD 使用手冊(cè)
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 增加磁盤(pán)
假設(shè)我們要給一臺(tái)只有一個(gè)磁盤(pán)的機(jī)器增加一個(gè)新的SCSI 磁盤(pán)。首先,需要關(guān)掉電腦,
然后按操作規(guī)程來(lái)安裝驅(qū)動(dòng)器、控制器和驅(qū)動(dòng)程序。
以root 登陸電腦。安裝完驅(qū)動(dòng)器后,檢查一下/var/run/dmesg.boot 有沒(méi)有找到新的
磁盤(pán)。新增加的磁盤(pán)就是da1,我們?cè)?1 掛上它。(如果你正添加一個(gè)IDE 驅(qū)動(dòng)器,在4.0
版以前的系統(tǒng)就是wd1,而4.0 和以后的版本的系統(tǒng)就是ad1)。
因?yàn)镕reeBSD 運(yùn)行在IBM-PC 兼容機(jī)上,它必須遵循PC BIOS 的分區(qū)規(guī)范。這與傳統(tǒng)的
BSD 分區(qū)是不同的。一個(gè)PC 的磁盤(pán)最高只能有四個(gè)BIOS(主)分區(qū)。如果磁盤(pán)只安裝FreeBSD,
你可以使用一種模式。另外,F(xiàn)reeBSD 必須安裝在PC BIOS 支持的分區(qū)內(nèi)。FreeBSD 把分區(qū)
叫做slices,這可能會(huì)把人搞糊涂。
在slice 中,驅(qū)動(dòng)器被加到/dev/da1s1e。這被讀作:SCSI 磁盤(pán),編號(hào)為1(第二個(gè)SCSI
磁盤(pán)),slice 1,和e BSD 分區(qū)。在有些例子中,也可以簡(jiǎn)化為/dev/da1e。
12.3.1 使用sysinstall
1. 使用Sysinstall
第2 頁(yè)FreeBSD 使用手冊(cè)
你可以使用/stand/sysinstall 命令,選擇它的使用菜單來(lái)分區(qū)和標(biāo)簽一個(gè)新的磁盤(pán)
(需要有root 權(quán)限)。運(yùn)行/stand/sysinstall,然后選擇配置菜單。根據(jù)配置菜單,上下
滾動(dòng),選擇分區(qū)條目。接下來(lái)你會(huì)看到一個(gè)安裝在你系統(tǒng)上的硬盤(pán)的列表。如果沒(méi)有看到
da1,你需要重新檢查你的硬件安裝,在/var/run/dmesg.boot 文件中檢查輸出信息。
2. FDISK 分區(qū)編輯器
選擇da1,鍵入FDISK 分區(qū)編輯器。選擇A,為FreeBSD 使用全部的磁盤(pán)。當(dāng)被告知你
是否要“remain coOperative with any future possible operating systems”時(shí),回答
YES。使用W 保存剛才的修改?,F(xiàn)在使用q 退出FDISK 編輯器。下面是你會(huì)看到的有關(guān)主引
導(dǎo)區(qū)的信息?,F(xiàn)在你已在運(yùn)行的系統(tǒng)上添加了一個(gè)磁盤(pán),就選擇None。
3. DiskLabel 編輯器
接下來(lái)是鍵入磁盤(pán)標(biāo)簽編輯器。這就是你要?jiǎng)?chuàng)建的BSD 分區(qū)。一個(gè)磁盤(pán)最高可以有8
個(gè)分區(qū),標(biāo)記為a-h。有幾個(gè)分區(qū)標(biāo)簽有特殊的用途。有的分區(qū)被用作root 分區(qū)(/)。你
的系統(tǒng)磁盤(pán)(你從它那兒?jiǎn)?dòng)的分區(qū))必須有一個(gè)a 分區(qū)。B 分區(qū)被用作交換分區(qū),你可以
用很多磁盤(pán)用作交換分區(qū)。
Sysinstall 的標(biāo)簽編輯器支持非root 和非swap 分區(qū)。在標(biāo)簽編輯器中,可以使用C
創(chuàng)建一個(gè)文件系統(tǒng)。當(dāng)提示這是否是一個(gè)FS(文件系統(tǒng))或swap 時(shí),選擇FS,然后給出一個(gè)
加載點(diǎn)(如:/mnt)。當(dāng)在post-install 模式時(shí)添加一個(gè)磁盤(pán),sysinstall 不會(huì)為你在
/etc/fstab 中創(chuàng)建,所以你指定的加載點(diǎn)并不重要。
你現(xiàn)在已經(jīng)準(zhǔn)備把新標(biāo)簽寫(xiě)到磁盤(pán)上,然后創(chuàng)建一個(gè)文件系統(tǒng),可以按下W 來(lái)實(shí)現(xiàn)。出
現(xiàn)任何錯(cuò)誤都會(huì)使它不能創(chuàng)建新的分區(qū)??梢酝顺鰳?biāo)簽編輯器然后重新執(zhí)行sysinstall。
4. 完成
下面一步就是編輯/etc/fstab,為你的新磁盤(pán)創(chuàng)建一個(gè)記錄。
12.3.2 使用命令行工具
12.3.2.1 使用Slices
第3 頁(yè)FreeBSD 使用手冊(cè)
這步安裝將允許你的磁盤(pán)與可能安裝在你電腦上的其他操作系統(tǒng)一起正確工作,而不會(huì)
搞亂其他操作系統(tǒng)的分區(qū)。強(qiáng)烈推薦使用這種方法來(lái)安裝新磁盤(pán)。
# dd if=/dev/zero of=/dev/rda1 bs=1k count=1
# fdisk -BI da1 #初始化你的新磁盤(pán)
# disklabel -B -w -r da1s1 auto #加上標(biāo)簽
# disklabel -e da1s1 #現(xiàn)在編輯你剛才創(chuàng)建的磁盤(pán)分區(qū)
# mkdir -p /1
# newfs /dev/da1s1e # 為你創(chuàng)建的每個(gè)分區(qū)重復(fù)這個(gè)操作
# mount -t ufs /dev/da1s1e /1 # 掛上分區(qū)
# vi /etc/fstab # 完成之后,添加合適的記錄到你的/etc/fstab 文件
如果你有一個(gè)IDE 磁盤(pán),記得要用ad 來(lái)替換大da,4.x 以前的系統(tǒng)要用wd 來(lái)替換。
12.3.2.2 專用的
如果你并沒(méi)有安裝其他的操作系統(tǒng),你可以使用專用模式。記住這種模式可能會(huì)弄亂
microsoft 的操作系統(tǒng);但不會(huì)對(duì)它進(jìn)行破壞。
# dd if=/dev/zero of=/dev/rda1 bs=1k count=1
# disklabel -Brw da1 auto
# disklabel -e da1 #創(chuàng)建‘e’分區(qū)
# 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 頁(yè)FreeBSD 使用手冊(cè)
# vi /etc/fstab # add an entry for /dev/da1e
# mount /1
12.4 網(wǎng)絡(luò),內(nèi)存和基本文件系統(tǒng)
除了安裝在你電腦上的物理硬件:軟盤(pán)驅(qū)動(dòng)器、CD、硬盤(pán)等,其他形式的磁盤(pán)----虛擬
磁盤(pán)也能被FreeBSD 認(rèn)出來(lái)。這些包括網(wǎng)絡(luò)文件系統(tǒng)和coda,象md 這樣的內(nèi)存文件系統(tǒng),
還有vnconfig 創(chuàng)建的后備文件系統(tǒng)。
12.4.1 vnconfig: 后備文件系統(tǒng)
Vnconfig 可以配置和啟用vnode 偽磁盤(pán)設(shè)備。一個(gè)vnode 是一個(gè)文件的描述,是文件
活動(dòng)的中心。這是說(shuō)vnconfig 使用文件來(lái)創(chuàng)建和操作一個(gè)文件系統(tǒng)。
掛上一個(gè)存在的文件系統(tǒng)的映象:
例12-1.使用vnconfig 掛上一個(gè)存在的文件系統(tǒng)的映象
# vnconfig vn0 diskimage
# mount /dev/vn0c /mnt
使用vnconfig 創(chuàng)建一個(gè)新的文件系統(tǒng)映象:
例12-2.使用vnconfig 創(chuàng)建一個(gè)新的后備磁盤(pán)
# 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 頁(yè)FreeBSD 使用手冊(cè)
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: 內(nèi)存文件系統(tǒng)
md 是一個(gè)簡(jiǎn)單,高效創(chuàng)建內(nèi)存文件系統(tǒng)的方法。
例如:
例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 文件系統(tǒng)配額
配額是操作系統(tǒng)的一個(gè)可選擇的特性,它可以允許你限制用戶使用的磁盤(pán)空間的大小或
是使用的文件的數(shù)量。這可以防止某個(gè)用戶強(qiáng)占所有的磁盤(pán)空間。
12.5.1 配置你的系統(tǒng)來(lái)啟用磁盤(pán)配額
在決定使用磁盤(pán)配額前,確信磁盤(pán)配額已經(jīng)在你的內(nèi)核中配置好了。只要在你的內(nèi)核配
置文件中添加下面一行就行了:
options QUOTA
第6 頁(yè)FreeBSD 使用手冊(cè)
在默認(rèn)情況下,GENERIC 內(nèi)核是不會(huì)啟用這個(gè)功能的,所以你必須配置、重建和安裝一
個(gè)定制的內(nèi)核。請(qǐng)參考FreeBSD 內(nèi)核配置這節(jié)了解更多有關(guān)內(nèi)核配置的信息。
接下來(lái),你需要在/etc/rc.conf 中啟用磁盤(pán)配額??梢酝ㄟ^(guò)添加下面這行來(lái)完成:
enable_quotas=“YES”
很好的控制你的配額啟動(dòng)情況,這是另外一個(gè)可利用的變量。通常啟動(dòng)時(shí),集成在每個(gè)
文件系統(tǒng)上的配額會(huì)被配額檢查程序自動(dòng)檢查。配額檢查功能能夠確保在配額數(shù)據(jù)庫(kù)中的數(shù)
據(jù)正確地反映了文件系統(tǒng)的數(shù)據(jù)情況。這是一個(gè)很耗時(shí)間的處理進(jìn)程,它會(huì)影響你系統(tǒng)的啟
動(dòng)時(shí)間。如果你想跳過(guò)這一步,可以加入下面這一行:
check_quotas=“NO”
如果你運(yùn)行的是3.2-RELEASE 以前的版本,配置比較簡(jiǎn)單,只需要配置一個(gè)選項(xiàng)。在你
的/etc/rc.conf 中設(shè)置下面這行:
check_quotas=“YES”
最后,你要編輯/etc/fstab 文件,在每一個(gè)文件系統(tǒng)基礎(chǔ)上啟用磁盤(pán)配額。這是你可
以啟用用戶和組配額,或啟用所有你的所有文件系統(tǒng)的地方。要在一個(gè)文件系統(tǒng)上啟用每個(gè)
用戶的配額,可以在/etc/fstab 記錄處為你要啟用配額的文件系統(tǒng)添加下面一行。例如:
/dev/da1s2g /home ufs rw,userquota 1 2
同樣的,要啟用組配額,使用組配額選項(xiàng)來(lái)代替用戶配額關(guān)鍵字。要同時(shí)啟用用戶和組
配額,可以這樣做:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
默認(rèn)情況下,配額文件是存放在文件系統(tǒng)的以quota.user 和quota.group 命名的根目
錄下??梢钥纯磃stab 的聯(lián)機(jī)手冊(cè)了解更多信息。即使聯(lián)機(jī)手冊(cè)說(shuō)你可以為配額文件指定一
個(gè)可改變的區(qū)域,這里并不推薦這樣做,因?yàn)椴煌呐漕~工具不一定遵循這樣的規(guī)則。到這
兒,你可以用你的新內(nèi)核重新啟動(dòng)你的系統(tǒng)。/etc/rc 將自動(dòng)運(yùn)行適當(dāng)?shù)拿顏?lái)創(chuàng)建最初的
配額文件,所以并不需要手動(dòng)來(lái)創(chuàng)建任何零長(zhǎng)度的配額文件。
第7 頁(yè)FreeBSD 使用手冊(cè)
在通常的操作過(guò)程中,你并不要求手動(dòng)運(yùn)行quotacheck,quotaon,quotaoff 命令。然而,
你可能需要閱讀與他們的操作相似的聯(lián)機(jī)手冊(cè)。
12.5.2 設(shè)置配額限制
一旦你配置好了你啟用配額的系統(tǒng),可以檢查一下它們是否真的有用。可以這樣做:
# quota -v
你應(yīng)當(dāng)為啟用配額的每個(gè)文件系統(tǒng)看看一個(gè)磁盤(pán)使用和當(dāng)前配額限制的在線摘要。你現(xiàn)
在可以使用edquota 命令準(zhǔn)備啟用配額限制。
你有幾個(gè)有關(guān)如何強(qiáng)迫限制用戶或組可以分配到的磁盤(pán)空間大小的選項(xiàng)。你可以限制磁
盤(pán)空間的分配,或文件的數(shù)量,或兩者都有。這些限制中的每一個(gè)最終可分為兩類(lèi):硬限制
和軟限制。
一個(gè)硬限制可能無(wú)法被超越。一旦一個(gè)用戶訪問(wèn)到了他們的硬限制,他們無(wú)法在文件系
統(tǒng)中得到任何分配。例如,如果用戶在文件系統(tǒng)上有一個(gè)500 blocks 的硬限制,而當(dāng)前已
經(jīng)分派了490 個(gè)blocks,用戶就只能分派剩下的10 個(gè)blocks。如果硬是要分派11 個(gè)blocks
將會(huì)失敗。
軟限制可以被有時(shí)間限制性地超越。這段時(shí)間可以被理解為寬限期,默認(rèn)是一個(gè)星期。
如果一個(gè)用戶延緩時(shí)間太長(zhǎng)的話,軟限制將會(huì)變成硬限制,根本就不允許被指派。當(dāng)用戶在
軟限制延后時(shí),寬限期將會(huì)被重新安排。
下面是一個(gè)當(dāng)你運(yùn)行edquota 命令時(shí)看到的例子。當(dāng)edquota 命令被調(diào)用時(shí),你會(huì)被轉(zhuǎn)
移進(jìn)EDITOR 環(huán)境變量指派的編輯器中,允許你編輯配額限制。
# 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 頁(yè)FreeBSD 使用手冊(cè)
inodes in use: 0, limits (soft = 50, hard = 60)
在每一個(gè)文件系統(tǒng)上,你通常會(huì)看到兩行。一行是block 限制,另一行是inode 限制。
簡(jiǎn)單地改變你要修改的配額限制的值。例如,提高這個(gè)用戶軟限制的數(shù)值到500,硬限制的
數(shù)值到600。
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
到:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
當(dāng)你離開(kāi)編輯器的時(shí)候,新的配額限制設(shè)置將會(huì)被保存。
12.5.3 檢查配額限制和磁盤(pán)使用
你既可以使用quota 也可以使用requota 命令來(lái)檢查配額限制和磁盤(pán)使用情況。Quota
命令能夠檢查單個(gè)用戶和組的配額和磁盤(pán)使用情況。只有超級(jí)用戶才可以檢查其他用戶的配
額和磁盤(pán)使用情況。Requota 命令可以用來(lái)了解所有配額和磁盤(pán)的使用情況。
下面是一個(gè)使用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 文件系統(tǒng)中,這個(gè)用戶超越了軟限制(50 blocks)15 個(gè)blocks,
而且它有5 天的寬限期。
12.5.4 通過(guò)NFS 進(jìn)行配額
Quotas 能夠在NFS 服務(wù)器上被quota 子系統(tǒng)強(qiáng)迫使用。在NFS 客戶端,rpc.rquotad
守護(hù)程序可以使quota 信息用于quota 命令,可以允許用戶察看他們的quota 統(tǒng)計(jì)信息。
第9 頁(yè)FreeBSD 使用手冊(cè)
可以這樣在/etc/inetd.conf 中啟用rpc.rquotad:
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
現(xiàn)在重起inetd:
# kill -HUP ‘cat /var/run/inetd.pid‘
12.6 創(chuàng)建和使用光學(xué)設(shè)備(CD 和DVD)
12.6.1 介紹
CD 與普通的磁盤(pán)相比有很多不同的特性。最初,它們是不能被用戶寫(xiě)入的。CD 有tracks,
要在FreeBSD 中制作一個(gè)CD,你要準(zhǔn)備將要寫(xiě)到CD 上的數(shù)據(jù)文件,然后根據(jù)每個(gè)tracks
寫(xiě)入到CD。
ISO 9660 文件系統(tǒng)被設(shè)計(jì)用來(lái)處理這些差異。它通常不會(huì)對(duì)文件系統(tǒng)作限制。幸運(yùn)的
是,它提供了一個(gè)可擴(kuò)展的機(jī)制允許在制作CD 時(shí)超越這些限制。
Mkisofs 程序能用來(lái)生成一個(gè)包含iso9660 文件系統(tǒng)的數(shù)據(jù)文件。它有很多支持的擴(kuò)展
選項(xiàng),下面會(huì)具體描述。你可以從/usr/ports/sysutils/mkisofs port 中安裝它。
使用哪個(gè)工具來(lái)刻錄CD 依賴于你的CD 刻錄機(jī)是ATAPI 的還是其他類(lèi)型的。ATAPI CD
使用burncd 程序。SCSI 和USB CD 刻錄機(jī)使用cdrecord 程序。
12.6.2 mkisofs
mkisofs 制作一個(gè)ISO9660 的文件系統(tǒng),簡(jiǎn)單用法如下:
# mkisofs -o imagefile.iso /path/to/tree
這個(gè)命令將創(chuàng)建一個(gè)包含ISO9660 文件系統(tǒng)的映象文件。在處理過(guò)程中,它將文件名稱
影射為標(biāo)準(zhǔn)的ISO 9660 文件系統(tǒng)的文件名,它將排除那些不典型的ISO 文件系統(tǒng)的文件。
可以看看mkisofs 的詳細(xì)描述,以便更好地使用它。
有很多選項(xiàng)能夠用來(lái)克服那些限制。特別的,-R 選項(xiàng)能夠啟用Rock Ridge 擴(kuò)展,-J
選項(xiàng)能啟用用于microsoft 系統(tǒng)的Joliet 擴(kuò)展,-hfs 能用來(lái)創(chuàng)建用于MAC 的HFS 文件系統(tǒng)。
第10 頁(yè)FreeBSD 使用手冊(cè)
對(duì)于那些即將要在FreeBSD 系統(tǒng)中使用的CD 來(lái)說(shuō),-U 能用來(lái)消除所有文件名的限制。
當(dāng)使用-R 選項(xiàng)時(shí),它會(huì)產(chǎn)生一個(gè)文件系統(tǒng)映象。
最后一個(gè)通常使用的選項(xiàng)是-b。這可以用來(lái)指定啟動(dòng)映象的位置,以產(chǎn)生一個(gè)叫做“El
Torito”的啟動(dòng)光盤(pán)。
12.6.3 burncd
如果你用的是ATAPI 的CD burner,你可以使用burncd 命令來(lái)刻錄ISO 映象到CD 上。
Burncd 是基本系統(tǒng)的一部分,可以使用/usr/sbin/burncd 來(lái)安裝。用法很簡(jiǎn)單,如下:
# burncd -f cddevice data imagefile.iso fixate
刻錄imagefile.iso的一個(gè)拷貝。默認(rèn)的設(shè)備是/dev/acd0c??纯碽urncd 的選項(xiàng)來(lái)設(shè)
置寫(xiě)入速度,刻完之后退出CD,然后寫(xiě)入聲音數(shù)據(jù)。
12.6.4 cdrecord
如果你沒(méi)有一個(gè)ATAPI 的CD burner,你必須使用cdrecord 來(lái)刻錄你的CD。Cdrecord
不是基本系統(tǒng)的一部分;你必須從sysutils/cdrtools 或設(shè)當(dāng)?shù)膒ackage 中安裝它?;鞠?
統(tǒng)的變化可能會(huì)引起這個(gè)程序的錯(cuò)誤,可能是由“coaster”引起的。當(dāng)你升級(jí)系統(tǒng)時(shí),你
需要升級(jí)port,或者如果你已升級(jí)到-STABLE,你使用新版本時(shí)也要升級(jí)port。
Cdrecord 有很多選項(xiàng),基本用法與burncd 相似??啼浺粋€(gè)ISO9660 映象文件只需這樣
做:
# cdrecord dev= device imagefile.iso
使用cdrecord 的比較巧妙的方法是找到使用的dev。要找到正確的設(shè)置,可以使用
cdrecord 的-scanbus 標(biāo)記,這會(huì)產(chǎn)生這樣的結(jié)果:
# cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 J.rg Schilling
Using libscg version 'schily-0.1'
scsibus0:
第11 頁(yè)FreeBSD 使用手冊(cè)
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) *
這個(gè)列表列出了設(shè)備的適當(dāng)?shù)膁ev 值。在這個(gè)例子中,CRW 是1,5,0,所以正確的輸
入應(yīng)是dev=1,5,0。有一個(gè)很容易的方法可以指定這個(gè)值;看看cdrecord 的介紹。在那兒也
可以找到有關(guān)音軌,控制速度和其它的東西。
12.7 RAID
12.7.1 軟件RAID
第12 頁(yè)FreeBSD 使用手冊(cè)
12.7.1.1 ccd (連接磁盤(pán)配置)
今天幾乎每個(gè)人都收集了很多的多媒體文件。從mp3 到視頻文件。我也有很多轉(zhuǎn)換過(guò)的
mp3 音樂(lè)文件。我現(xiàn)在面臨一個(gè)問(wèn)題是如何存儲(chǔ)這些文件。
選擇一個(gè)比較好的解決方案,最重要的是產(chǎn)品的速度、性能和成本。通常這三者不可能
都滿足,要獲得比較快,和大容量的存儲(chǔ)設(shè)備,就比較昂貴。但如果將成本降下來(lái),那它的
速度或可靠性就會(huì)打折扣。我在設(shè)計(jì)系統(tǒng)時(shí),希望在兩者之間達(dá)到一個(gè)平衡。對(duì)我來(lái)說(shuō),速
度不是非常重要的,因?yàn)榻^大多數(shù)的使用是通過(guò)百兆以太網(wǎng)來(lái)完成的。
通過(guò)幾個(gè)磁盤(pán)來(lái)傳輸文件要快得多。最后,還要考慮可靠性。存放在這個(gè)大容量的存儲(chǔ)
設(shè)備上的所有數(shù)據(jù)都被備份到了CD-R 盤(pán)上了。這個(gè)驅(qū)動(dòng)器主要充當(dāng)實(shí)時(shí)存儲(chǔ)的功能,所以
如果一個(gè)驅(qū)動(dòng)器壞了,我就可以換掉它,重建文件系統(tǒng),把數(shù)據(jù)從CD-R 上拷回來(lái)。
總的計(jì)算一下,我需要在有限的成本下得到最大的存儲(chǔ)容量。大型的IDE 磁盤(pán)現(xiàn)在是一
天比一天便宜。我發(fā)現(xiàn)Western Digital 30.7gb 5400 RPM 硬盤(pán)只需要150 美元。我買(mǎi)了三
個(gè),加起來(lái)足有90GB 的存儲(chǔ)容量。
12.7.1.1.1 安裝硬件
我在一個(gè)已安裝有一個(gè)IDE 硬盤(pán)的系統(tǒng)上再安裝一個(gè)磁盤(pán)。最好是每個(gè)IDE 磁盤(pán)都使用
一個(gè)自己的IDE 控制器,但要求有兩個(gè)IDE 控制器可能成本比較高。所以,我把兩個(gè)磁盤(pán)一
個(gè)設(shè)置成主盤(pán),一個(gè)設(shè)置成從盤(pán)。一個(gè)放在第一個(gè)IDE 控制器上作為系統(tǒng)磁盤(pán),其他兩個(gè)放
在第二個(gè)控制器上。
重啟動(dòng)后,系統(tǒng)BIOS 被配置成自動(dòng)檢測(cè)硬盤(pán)。FreeBSD 檢測(cè)到了它們:
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 頁(yè)FreeBSD 使用手冊(cè)
如果FreeBSD 沒(méi)有檢測(cè)到它們,請(qǐng)確定它們的跳線是否正確。接下來(lái)要考慮的是,如何
創(chuàng)建文件系統(tǒng)。我對(duì)vinum 和ccd 有一些研究。在一些特殊的配置中,ccd 是比較好的選擇,
因?yàn)樗容^簡(jiǎn)單。Vinum 顯得有點(diǎn)超出了我的需要。
12.7.1.1.2 安裝CCD
CCD 允許我將幾個(gè)相同的磁盤(pán)通過(guò)一個(gè)邏輯文件系統(tǒng)連接起來(lái)。要使用CCD,我需要在
內(nèi)核中配置CCD 支持選項(xiàng)。我把這行加入到我的內(nèi)核配置文件中,然后重建內(nèi)核:
pseudo-device ccd 4
在FreeBSD 4.0 和以后版本中,CCD 可以作為一個(gè)內(nèi)核模塊來(lái)加載。這兒是我如何給磁
盤(pán)做標(biāo)記的:
disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 auto
這兒把整個(gè)硬盤(pán)創(chuàng)建成ad1c, ad2c 和ad3c。下一步是改變disklabel 的類(lèi)型。
disklabel -e ad1
disklabel -e ad2
disklabel -e ad3
這兒在每個(gè)已經(jīng)設(shè)置了EDITOR 環(huán)境變量的磁盤(pán)上打開(kāi)了disklabel,在我的例子中,
是vi。你可以看到:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
我需要添加一個(gè)“e“分區(qū)給ccd 用。這可以是“c”分區(qū)的一個(gè)拷貝,但fstype 必須
是4.2BSD。做完之后,你會(huì)看到下面這些:
第14 頁(yè)FreeBSD 使用手冊(cè)
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 建造文件系統(tǒng)
現(xiàn)在,我已給每個(gè)磁盤(pán)都加上了標(biāo)簽,我需要建構(gòu)ccd。要這樣做,我需要一個(gè)叫
ccdconfig 的工具,在這兒是/dev/ccd0c。ccdoc 的設(shè)備節(jié)點(diǎn)可能不存在,所以你需要?jiǎng)?chuàng)建
它,執(zhí)行下面的命令:
cd /dev
sh MAKEDEV ccd0
Ccdconfig 的最后配置是設(shè)備的排列問(wèn)題。執(zhí)行下面的命令:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
這樣就配置好了ccd。我現(xiàn)在要?jiǎng)?chuàng)建文件系統(tǒng)了。
newfs /dev/ccd0c
12.7.1.1.4 自動(dòng)創(chuàng)建
最后,如果我要掛上ccd,我需要先配置它。我把當(dāng)前的配置文件寫(xiě)入/etc/ccd.conf
中:
ccdconfig -g > /etc/ccd.conf
當(dāng)我重新啟動(dòng)系統(tǒng)時(shí),腳本/etc/rc 就運(yùn)行ccdconfig –C。這樣就能自動(dòng)配置ccd 了。
如果你啟動(dòng)進(jìn)入了單用戶模式,你在掛上ccd 之前,你需要執(zhí)行下面的命令來(lái)配置隊(duì)列:
ccdconfig -C
然后,我們需要為ccd 在/etc/fstab 中配置一個(gè)記錄,以便在啟動(dòng)時(shí)能被掛上。
第15 頁(yè)FreeBSD 使用手冊(cè)
/dev/ccd0c /media ufs rw 2 2
12.8 用磁帶機(jī)備份
主要的磁帶機(jī)有4mm、8mm、QIC、mini-cartridge 和DLT。
12.8.1 4mm (DDS: Digital Data Storage)
在Conner 買(mǎi)下Archive (主要的QIC 制造商)之后,4mm 磁帶機(jī)取代了QIC 而成為工作
站備份資料的設(shè)備。它比8mm 小(3 x 2 x 0.5 inches, 76 x 51 x 12 mm ) ,但對(duì)于資料保存
的可信度仍不及8mm ,很安靜,同時(shí)它的卡也比8mm 來(lái)的便宜。它和8mm 一樣,讀寫(xiě)頭
的壽命都不長(zhǎng),因?yàn)樗鼈兺瑯邮怯寐菪隣畹姆绞絹?lái)掃描的。數(shù)據(jù)傳輸?shù)乃俣?,約在150 KB/s
到500 KB/s 之間,可存儲(chǔ)的空間從1.3 GB 到2.0 GB,硬件壓縮可使空間加倍。磁帶庫(kù)單元
可以有6 臺(tái)磁帶機(jī),120 個(gè)磁帶匣,以自動(dòng)切換的方式使用同一個(gè)磁帶柜, 磁帶庫(kù)的容量
可達(dá)240 GB 。
4mm 和8mm 同樣都是使用螺旋掃描的方式,所有螺旋掃描的優(yōu)點(diǎn)及缺點(diǎn),都可在4mm
和8mm 磁帶機(jī)上看到。磁帶在經(jīng)過(guò)2000 次的使用或100 次的滿載后,就該退休了。
12.8.2 8mm (Exabyte)
8mm 磁帶機(jī)是最常見(jiàn)的SCSI 磁帶機(jī),也是磁帶交換的最佳選擇,幾乎每個(gè)工作站都有
一臺(tái)exabyte 2 GB 8mm 磁帶機(jī)。8mm 磁帶機(jī)可信度高、方便、且安靜??ㄏ恍?4.8 x 3.3 x 0.6
inches,122 x 84 x 15 mm) 而且不貴。8mm 磁帶機(jī)的下邊是一個(gè)短短的讀寫(xiě)頭,而讀寫(xiě)頭的
壽命取決于磁帶經(jīng)過(guò)讀寫(xiě)頭時(shí),高速的相對(duì)運(yùn)動(dòng)情況。數(shù)據(jù)傳輸?shù)乃俣龋s在250 KB/s 到
500 KB/s 之間,可存儲(chǔ)的空間從300 MB 到7 GB,硬件壓縮可使空間加倍。磁帶庫(kù)單元可
以有6 臺(tái)磁帶機(jī),120 個(gè)磁帶匣,以自動(dòng)切換的方式使用同一個(gè)磁帶柜,磁帶庫(kù)的容量可達(dá)
840 GB 。
資料是使用螺旋掃描的方式記錄在磁帶上的,讀寫(xiě)頭和磁帶約相差6 度,磁帶以270
度纏繞著軸,并抵住讀寫(xiě)頭,軸適時(shí)地旋轉(zhuǎn),使得磁帶具有高密度,并可使磁道緊密地分布,
從一端到另一端。
12.8.3 QIC
QIC-150 是最常見(jiàn)的磁帶機(jī)。和4 mm 及8 mm 比較,QIC 磁帶機(jī)相當(dāng)昂貴,最高可能
要5 倍的價(jià)錢(qián)(每GigaByte)。假如你需要的是六臺(tái)左右的磁帶機(jī),那么QIC 將是正確的選擇。
QIC 是最常見(jiàn)的磁帶機(jī),每個(gè)工作站都會(huì)有一臺(tái)QIC 磁帶機(jī)。QIC 磁帶機(jī)具有幾種不同的
第16 頁(yè)FreeBSD 使用手冊(cè)
存儲(chǔ)密度。QIC 磁帶機(jī)并不”安靜”,讀寫(xiě)時(shí)的聲音都可清淅地聽(tīng)到。QIC 磁帶機(jī)的規(guī)格:6
x 4 x 0.7 inches,15.2 x 10.2 x 1.7 mm 。Mini-cartridges 用的同樣是1/4”寬的磁帶,將在后
面討論到。QIC 不具有磁帶庫(kù)及切換的功能。
數(shù)據(jù)傳輸?shù)乃俣冉橛?50 KB/s 和500 KB/s 之間,可存儲(chǔ)的空間從40 MB 到15 GB。較
新的QIC 磁帶機(jī)具有硬件壓縮的功能。QIC 的使用率愈來(lái)愈低,漸漸被DAT 所取代。
資料以磁道的方式記錄在磁帶上,磁道數(shù)及磁道的寬度會(huì)根據(jù)容量而有所不同。通常新的磁
帶機(jī)具有向后兼容(backward-compatibility)的讀取功能(通常也具備寫(xiě)入的功能)。對(duì)于資料的
安全性,QIC 具有不錯(cuò)的評(píng)價(jià)。磁帶在經(jīng)過(guò)5000 次的使用后,就該退休了。
12.8.4 XXX* Mini-Cartridge
12.8.5 DLT
在這個(gè)章節(jié)所列出的磁帶機(jī)中,DLT 具有最快的數(shù)據(jù)傳輸速率。1/2”(12.5 mm)的磁帶
包含在單軸的磁帶匣(4 x 4 x 1 inches,100 x 100 x 25 mm)中。磁帶匣的一邊是一個(gè)旋轉(zhuǎn)匣道,
通過(guò)匣道的開(kāi)合,可以讓磁帶卷動(dòng)。磁帶匣內(nèi)只有一個(gè)軸,而本章中所提到的其它磁帶匣都
是有兩個(gè)軸的(9 track 磁帶機(jī)例外)。
數(shù)據(jù)傳輸?shù)乃俣燃s1.5 MB/s,是4mm,8mm 和QIC 磁帶機(jī)的三倍,可存儲(chǔ)的空間從
10 GB 到20 GB,具有磁帶機(jī)數(shù)據(jù)庫(kù)。磁帶機(jī)數(shù)據(jù)庫(kù)單元可以有1 到20 臺(tái)磁帶機(jī),5 到900
個(gè)磁帶匣,磁帶機(jī)數(shù)據(jù)庫(kù)的容量可達(dá)50 GB 到9 TB 。
資料存儲(chǔ)在平行于磁帶運(yùn)行方向的磁道上(同QIC 磁帶),一次寫(xiě)入兩個(gè)磁道。讀寫(xiě)頭的
壽命相當(dāng)長(zhǎng),每當(dāng)磁帶停止前進(jìn),磁帶與讀寫(xiě)頭之間沒(méi)有相對(duì)運(yùn)動(dòng)。
12.8.6 AIT
AIT 是sony 開(kāi)發(fā)的一種新格式,每個(gè)磁帶最高可以存儲(chǔ)50GB。磁帶機(jī)使用內(nèi)存芯片來(lái)
保存磁帶上的索引內(nèi)容。這個(gè)索引能夠被磁帶機(jī)驅(qū)動(dòng)器快速閱讀來(lái)搜索磁帶機(jī)上文件所處的
位置,而不象其他的磁帶機(jī)需要化幾分鐘的時(shí)間才能找到文件。象SAMS:Alexandria 這樣
的軟件:能夠操作四十或者更多的AIT 磁帶庫(kù),直接使用內(nèi)存芯片來(lái)進(jìn)行通訊把內(nèi)容顯示
在屏幕上,以決定把什么文件備份到哪個(gè)磁帶上,加載,恢復(fù)數(shù)據(jù)。
12.8.7 使用新的磁帶
當(dāng)你在一塊完全空白的磁帶上嘗試寫(xiě)入數(shù)據(jù)時(shí),你會(huì)得到類(lèi)似下面這樣的錯(cuò)誤信息:
sa0(ncr1:4:0): NOT READY asc:4,1
第17 頁(yè)FreeBSD 使用手冊(cè)
sa0(ncr1:4:0): Logical unit is in PRocess of becoming ready
信息指出這塊磁帶沒(méi)有Identifier Block (block 編號(hào)0)。在QIC-525 之后的所有QIC 磁帶,
都采用QIC-525 標(biāo)準(zhǔn),必須寫(xiě)入一個(gè)Identifier Block。對(duì)于這種問(wèn)題,有以下兩種解決的辦
法:
用mt fsf 1 可以使磁帶機(jī)對(duì)磁帶寫(xiě)入Identifier Block。
使用面版上的按鈕退出磁帶。
再插入一次,并dump 資料到磁帶上。
這時(shí)dump 會(huì)傳回DUMP: End of tape detected ,然后你會(huì)得到這樣的錯(cuò)誤信息:
HARDWARE FAILURE info:280 asc:80,96
這時(shí)用mt rewind 來(lái)倒轉(zhuǎn)磁帶,磁帶操作的后續(xù)動(dòng)作都完成了。
12.9 備份程序
主要有三個(gè)主要的備份程序:dump,tar,cpio.
12.9.1 Dump 和Restore
dump 和restore 是UNIX 傳統(tǒng)的備份程序。它以block 為單位來(lái)備份資料,而不是以文
件,鏈接或目錄來(lái)備份資料。dump 備份的是device 整個(gè)filesystem,不能只備份一個(gè)filesystem
的部分或是用到兩個(gè)以上filesystem 的目錄樹(shù)。如果是遇到soft link ln 或是mounting point,
則只會(huì)記錄下building block。dump 出現(xiàn)于AT&T UNIX 的Version 6 (約1975) 。默認(rèn)的參
數(shù)適用于9-track 磁帶(6250 bpi),所以如果要用高密度的磁帶(最高可達(dá)62.182 ftpi),就不能
用默認(rèn)的參數(shù),而要另外指定參數(shù)。
rdump 和rrestore 可以通過(guò)網(wǎng)絡(luò),在另一臺(tái)計(jì)算機(jī)的磁帶機(jī)上備份資料。這兩個(gè)程序都
是依靠rcmd 和ruserok 來(lái)訪問(wèn)遠(yuǎn)程的磁帶機(jī)。因此,運(yùn)行備份的使用者必須要有遠(yuǎn)程主機(jī)
的rhosts 訪問(wèn)權(quán)。rdump 和rrestore 的參數(shù)必需適用于遠(yuǎn)程主機(jī)(例如,當(dāng)你從FreeBSD 連
到一臺(tái)Sun 工作站komodo 去使用磁帶機(jī)時(shí),使用/sbin/rdump 0dsbfu 54000 13000 126
komodo:/dev/nrsa8 /dev/rda0a 2>&1) 。要注意的是,你必需檢查你的情況,因?yàn)閳?zhí)行遠(yuǎn)
程命令會(huì)牽涉到“安全”(security)的問(wèn)題(指資料的安全性)。也可以通過(guò)ssh 用一個(gè)更安全
的方式來(lái)使用rdump 和rrestore。
例12-4.通過(guò)ssh 使用rdump
# /sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish /
第18&