备份是指对文件进行拷贝,用来作为原文件被删除或毁坏时的安全措施。通常做法是将其拷到可移动的介质中。备份文件后可方便地恢复误删的文件,但更重要的是用于处理严重的硬件故障和其他灾难性故障。备份文件是最关键的系统管理功能之一,按照一定的步骤和计划实现系统文件的备份有下述三个主要原因:
当按计划备份文件系统时,应保证能够将备份文件恢复为当前状态。另外,你可能想将备份好的文件系统从一个系统传到另一个系统中作为文档,或将文件保存到可移动的介质上,这样就能够移动或改变系统上的文件。按计划备份文件需考虑下面几方面的内容:
可以从单个系统运行 ufsdump 命令,并通过远程 shell 或远程登录在网络中远程备份多组系统。此外,还可以将输出定向到磁带设备所在的系统。通常,磁带设备位于运行 ufsdump 命令的系统上,但这并不是必须的。
如果是通过网络执行远程备份,则配备了磁带设备的系统在其 /.rhosts 文件中必须具有与使用该设备的每台客户机对应的项。另外,启动备份的系统必须包括在将要备份的每个系统的 /.rhosts 文件中。
表 1 种备份类型之间的差异
备份类型 |
结果 |
优点 |
缺点 |
完整 |
复制完整的文件系统或目录 |
所有数据都处于一个位置中 |
需要大量备份磁带,写入时间很长。由于驱动器必须按顺序移至磁带上文件所在的点,因此检索各个文件需较长时间。可能必须搜索多个磁带。 |
快照 |
创建文件系统的临时映像 |
系统可以处于多用户模式下 |
创建快照时,系统性能可能会降低。 |
增量 |
仅复制指定文件系统中自以前某一次备份以来发生更改的那些文件 |
更容易检索文件系统中的小的更改 |
查找包含文件的增量磁带会需要较长时间。可能必须返回上一次的完整备份。 |
2.UFS文件系统的备份
使用 ufsdump 命令备份文件系统的常规步骤。成为超级用户或承担等效角色。
使系统进入运行级 S(单用户模式)。
# shutdown -g30 -y
2.检查文件系统的一致性。
# fsck -m /dev/rdsk/c0t0d0s7
fsck -m 命令用于检查文件系统的一致性。例如,电源故障可能会使文件处于不一致的状态
如果需要将文件系统备份到远程磁带机,请执行以下步骤:
a.在连接磁带机的系统(磁带服务器)上,将以下项添加到该系统的 /.rhosts 文件中:
host root
b.host 项指定了要在其中运行 ufsdump 命令来执行备份的系统的名称。
c.在磁带服务器上,检验添加到 /.rhosts 文件中的主机是否可通过名称服务进行访问。
3.确定磁带机的设备名称。
缺省的磁带机为 /dev/rmt/0 设备。
4.将可写的磁带插入磁带机。
5.备份文件系统。
# ufsdump options arguments filenames
6.可以备份文件系统或目录,也可以备份文件系统中的文件。有关备份各个文件的信息,
7.如果出现提示,请取出磁带并插入下一个磁带卷。
8.使用卷编号、转储级别、日期、系统名称、磁盘片和文件系统标记每个磁带。
9.通过按 Control-D 组合键使系统回到运行级 3。
10.检验备份是否成功。
# ufsrestore tf device-name
应用实例:执行根 (/) 文件系统完全备份
# init 0
ok boot -s
# ufsdump 0ucf /dev/rmt/0 /
任选项0说明的0级备份,也就是完全备份;c任选项说明是盒式磁带;u任选项更新转贮记录;f任选项指定dump文件(逻辑设备名或磁带设备)。如果一盒带存不下,则ufsdump命令会提醒你什么时候该换一盒新带。在磁带上标明命令、文件系统名及备份日期等信息。磁带机命名约定使用逻辑设备名称而不是物理设备名称。图1显示了此命名约定。
图 1 磁带机设备名称
通常使用以下磁带介质来备份 Solaris 系统:
1/2 英寸盘式磁带
1/4 英寸流盒式磁带
8 毫米盒式磁带
4 毫米盒式磁带 (DAT)
具体指标如表-2 磁带存储容量
备份介质 |
存储容量 |
1/2 英寸盘式磁带 |
140 MB (6250 bpi) |
2.5 GB 1/4 英寸盒式 (QIC) 磁带 |
2.5 GB |
DDS3 4 毫米盒式磁带 (DAT) |
12–24 GB |
14 GB 8 毫米盒式磁带 |
14 GB |
DLT 7000 1/2 英寸盒式磁带 |
35–70 GB |
应用实例:(/) 文件系统的增量备份
以下示例说明如何在单用户模式下执行根 (/) 文件系统的增量备份。
# init 0
ok boot -s
# ufsdump 9ucf /dev/rmt/0 /
# ufsrestore tf /dev/rmt/0
包括以下 ufsdump 选项:
9 指定 9 级转储(或增量备份)。
u 指定将 /etc/dumpdates 文件更新为此备份的日期。
c 标识盒式磁带设备。
f /dev/rmt/0 标识磁带设备。
/ 表示正在备份的文件系统。
二、UFS文件系统的恢复简介
下面是恢复文件系统之前需要知道的信息:
需要哪个磁带或盘;
备份文件系统的设备名;
你使用的磁带设备类型;
必须使用与备份介质兼容的磁带设备才能恢复文件。备份介质的格式确定了恢复文件所必须使用的驱动器。例如,如果备份介质为 8 毫米磁带,则必须使用 8 毫米磁带设备来恢复文件。
磁带设备名(本地或远程)。
决定使用哪个备份带
在开始恢复文件或文件系统之前,必须决定使用哪一备份磁带,下面是选择备份磁带的考虑步骤:
向用户寻问有关文件或文件系统丢失的日期,或文件还原的大概时间。
如果系统没有完全破坏,就只须增量备份,结合你的备份计划和故障时间,找出适合的备份版本,这个版本不一定是最新的。
如果系统已经破坏,须恢复全部文件系统时,需要最新的0级备份带。或者在一次全部备份的基础上进行几次增量备份,以接近故障的时间点。
三、UFS文件系统备份实战
1.恢复全部备份的步骤
如果一个硬盘上的文件系统全部损坏,就需要对这块盘进行完全恢复。下面是采用盒式磁带恢复一个文件系统的完整备份的过程。注意,这一过程将用新的文件系统来代替原来存在的文件系统。
(1)进入超级用户;
(2)进入单用户模式,确保没有人使用你将恢复的文件系统;
(3)使用umount来卸载故障盘;
(4)在故障盘上重新建立UFS文件系统;
(5)将新的UFS文件系统盘挂接上;
(6)进入你希望做恢复的目录中;
(7)插入盒式磁带;
(8)使用ufsrestore rvf /dev/rmt/0将文件系统恢复。
应用实例:硬盘c0t0d0s7的挂接点为/files,要将此盘做完全恢复。
host%su
Password:
#init s
#umount /files
#newfs /dev/rdsk/c0t0d0s7
#mount /dev/dsk/c0t0d0s7 /files
#cd /files1
#ufsrestore rvf /dev/rmt/0
2.使用非交互模式从备份带中恢复单个文件(ufsrestore)
下面是从备份带上恢复单个文件的过程:
(1)进入超级用户;
(2)将备份带插入;
(3)键入cd /var/tmp进入/var/tmp目录下,如果要将备份文件恢复到不同的目录中,用相应的目录代替/var/tmp即可;
(4)键入ufsrestore xvf /dev/rmt/n,x任选项说明拷贝文件或目录时是否设置所有者/模式的信息;v任选项说明显示被恢复的文件名;f选项说明磁带设备名;
(5)键入卷号,如果只有1卷,键入“1”,这时文件被恢复到当前工作目录中;
(6)键入“n”,目录的模式保持不变;
(7)键入ls –l文件清单显示出来;
(8)用mv命令将文件移到合适的目录中。
应用实例: 用非交互模式恢复/etc/passwd文件。
# cd /var/tmp
# ufsrestore xvf /dev/rmt/0 ./etc/passwd
#P#
四、UFS文件系统的快照
1 UFS文件系统快照和备份的区别
使用ufsdump备份的时候总需要进入单用户模式,这对于时刻提供服务的主机来说是非常不方便的。下面我们介绍的文件系统快照(Snapshot)就能解决这个问题,它可以在多用户的情况下,让我们进行文件系统备份。
2 快照的定义?
快照(Snapshot)是文件系统的暂存瞬间映像,主要用于备份操作。我们使用fssnap命令会创建一个虚拟设备和一个后备存储文件。这个虚拟设备不论看起来或实际运行都像真实的设备。后备存储文件是位映射文件,该文件中包含进行快照之前的数据的备份。
我们建立快照(Snapshot)就是为了在多用户的情况下备份这个虚拟设备,以便在故障发生之后进行系统恢复。
3 快照使用注意事项
注意存放后备存储文件的空间要足够大。如果不够大,创建工作就会失败,查看日志就可以发现失败原因;
最好有个专门的目录来存储后备存储文件;
你不能在一个文件系统上做这个文件系统的部分目录的UFS快照(Snapshot)。
4 创建UFS快照(Snapshot)的步骤:
(1)成为超级用户或授权角色用户;
(2)使用df-k命令确定有足够的备份空间;
(3)确保目录的后备存储文件名是惟一的;
(4)使用下面命令创建UFS快照(snapshot)。
# fssnap -F ufs -o bs=/backing-store-file /file-system
注意:后备存储文件的快照要位于不同的文件系统。
(5)使用下面的命令来验证快照是否成功创立。
# /usr/lib/fs/ufs/fssnap -i /file-system
应用实例:创建/usr目录快照:
# fssnap -F ufs -o bs=/var/tmp/usr.back.file /usr/dev/fssnap/1
下面命令是限定后备存储文件的大小为300MB。
# fssnap -F ufs -o maxsize=300m,bs=/var/tmp/usr.back/usr/dev/fssnap/1
使用下列命令来显示快照信息:
# /usr/lib/fs/ufs/fssnap –i
5 创建多 TB UFS 快照
UFS快照的大小是有限制的,每个文件不能大于512 GB。在多TB UFS系统中创建UFS快照,其大小限额也和普通UFS系统一样不能大于512 GB。需要指出的是,在建立多TB UFS快照时,不论你指定后备存储文件名与否,都将产生多个小于512 GB的文件,而且文件名的后缀为.2,.3等。
应用实例:建立大小为1.6 TB的后备存储文件。
# fssnap -F ufs -o bs=/var/tmp /data2/dev/fssnap/0
# /usr/lib/fs/ufs/fssnap -i
6 删除UFS快照(Snapshot)
删除UFS快照有两种方法,如果在建立快照时使用了unlink参数,那么可以使用fssnap-d命令将快照和后备存储文件一同删除;如果建立快照时没有使用unlink参数,这个fssnap-d命令只能删除快照,至于后备存储文件还要用rm命令删除。
下面命令是使用unlink参数创建快照的方法:
#fssnap -F ufs -o bs=/var/usr.snap,unlink /usr
删除:
#fssnap -d /usr
Deleted snapshot 1.
如果没有使用unlink参数,接下来还有一步:
#rm usr.snap
7 备份 UFS 快照
创建完快照后,可以用任何标准的Solaris备份命令来备份这个快照。因为这个快照虽然是个只读的虚拟设备,但你可以像对待真正的设备一样备份它。
(1)使用ufsdump来备份快照
如果使用ufsdump来备份快照,我们既可以在创建完快照再备份,也可以在创建快照的同时来备份。
下面我们分别进行介绍。
先用ufsdump完全备份/dev/rfssnap/1虚拟设备:
# ufsdump 0ucf /dev/rmt/0 /dev/rfssnap/1
如果要在创建快照的同时备份虚拟设备:
#ufsdump 0ucf /var/usr_snap.dmp `fssnap -F
ufs -o bs=/var/usr.snap,unlink /usr`
(2)使用tar备份 UFS 快照骤如下:
成为超级用户或授权角色用户。
为快照创建挂接(mount)点,比如:# mkdir /backups/home.bkup
挂接快照:# mount -F ufs -o ro /dev/fssnap/1 /backups/home.bkup
进入快照的目录:# cd /backups/home.bkup
使用tar命令将快照内容备份到磁带上:# tar cvf /dev/rmt/0 .
应用实例:建立S 快照的增量备份 (ufsdump)
以增量方式备份 UFS 快照意味着仅备份自上一个快照以来修改的文件。使用带有 N 选项的 ufsdump 命令。此选项可指定为跟踪增量转储而插入 /etc/dumpdates 文件中的文件系统的设备名称。
以下 ufsdump 命令可指定用于创建文件系统增量备份的嵌入式 fssnap 命令。
1.成为超级用户或承担等效角色。
2.创建 UFS 快照的增量备份。
# ufsdump 1ufN /dev/rmt/0 /dev/rdsk/c0t1d0s0 `fssnap -F ufs -o raw,bs=
/export/scratch,unlink /dev/rdsk/c0t1d0s0`
在本示例中,-o raw 选项用于显示原始设备而不是块设备的名称。通过使用此选项,可以更轻易地在要求使用原始设备的命令(如 ufsdump 命令)中嵌入 fssnap 命令。
3.检验是否已备份快照。
# ufsrestore ta /dev/rmt/0