- 论坛徽章:
- 0
|
12.2.7 UFS文件系统的快照
在12.2.6节中我们介绍了UFS备份和恢复的方法,读者可能已经发现,使用ufsdump备份的时候总需要进入单用户模式,这对于时刻提供服务的主机来说是非常不方便的。下面我们介绍的文件系统快照(Snapshot)就能解决这个问题,它可以在多用户的情况下,让我们进行文件系统备份。
首先,我们来介绍一下快照是什么?
快照(Snapshot)是文件系统的暂存瞬间映像,主要用于备份操作。我们使用fssnap命令会创建一个虚拟设备和一个后备存储文件。这个虚拟设备不论看起来或实际运行都像真实的设备。后备存储文件是位映射文件,该文件中包含进行快照之前的数据的备份。
我们建立快照(Snapshot)就是为了在多用户的情况下备份这个虚拟设备,以便在故障发生之后进行系统恢复。
1.创建和删除UFS快照(Snapshot)
创建UFS快照(Snapshot)
在创建UFS快照(Snapshot)之前,我们必须注意几个问题:
注意存放后备存储文件的空间要足够大。如果不够大,创建工作就会失败,查看日志就可以发现失败原因;
最好有个专门的目录来存储后备存储文件;
你不能在一个文件系统上做这个文件系统的部分目录的UFS快照(Snapshot)。
对于最后一点注意事项,需要解释一下。
如果硬盘空间分配如下:
# df -k /usr
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t0d0s0 3618177 2190002 1391994 62% /
说明/usr与/在一个硬盘分区。当你试图去建立/usr目录的快照时就会出现下列情况:
# fssnap -F ufs -o bs=/snaps/usr.back.file /usr
snapshot error: Invalid backing file path
这个信息告诉我们不能在同一个文件系统上建立这个文件系统的快照。
下面是我们创建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
例12-5 创建UFS快照。
创建/usr目录快照:
# fssnap -F ufs -o bs=/var/tmp/usr.back.file /usr
/dev/fssnap/1
下面命令是限定后备存储文件的大小为500MB。
# fssnap -F ufs -o maxsize=500m,bs=/var/tmp/usr.back/usr
/dev/fssnap/1
使用下列命令来显示快照信息:
# /usr/lib/fs/ufs/fssnap -i
Snapshot number : 1
Block Device : /dev/fssnap/1
Raw Device : /dev/rfssnap/1
Mount point : /usr
Device state : idle
Backing store path : /var/tmp/ usr.back.file
Backing store size : 0 KB
Maximum backing store size : Unlimited
Snapshot create time : Thu Jul 01 14:50:38 2004
Copy-on-write granularity : 32 KB
删除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
2.备份和恢复UFS快照(Snapshot)
备份UFS快照(Snapshot)
创建完快照后,可以用任何标准的Solaris备份命令来备份这个快照。因为这个快照虽然是个只读的虚拟设备,但你可以像对待真正的设备一样备份它。
如果使用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`
此外,其他标准的Solaris备份命令,比如tar也能备份,步骤如下:
(1)成为超级用户或授权角色用户。
(2)为快照创建挂接(mount)点,比如:
# mkdir /backups/home.bkup
(3)挂接快照:
# mount -F ufs -o ro /dev/fssnap/1 /backups/home.bkup
(4)进入快照的目录:
# cd /backups/home.bkup
(5)使用tar命令将快照内容备份到磁带上:
# tar cvf /dev/rmt/0 .
恢复UFS快照(Snapshot)
恢复快照和恢复其他的备份文件没有本质区别,请参见12.2.6节中所述,这里不再重复。
12.2.8 多TB UFS文件系统介绍
以前,UFS文件系统在64位系统和32位系统上的大小仅限于约1 TB (1TB=1000G)。
现在,Solaris 10在运行64位Solaris内核的系统上支持多TB UFS文件系统。系统命令和公用程序也已更新为支持多TB UFS文件系统。但需要注意的是,只有UFS文件运行64位内核的系统才支持多TB UFS文件系统。
开始时你可以创建一个小于1 TB的UFS文件系统,然后可以使用newfs -T命令来指定该文件系统以后可增大为一个多TB文件系统。此命令设置索引节点和碎片密度为多TB 文件系统进行相应的伸缩。
多TB UFS文件系统的功能包括:
可以创建一个容量最大为16 TB的UFS文件系统。
可以创建一个容量小于16 TB的文件系统,该文件系统以后最大可以增加到16 TB。
可以在物理磁盘和Solaris卷管理器的逻辑卷上创建多TB文件系统。
在容量超过1 TByte的文件系统上将默认启用UFS日志记录功能。多TB文件系统将受益于启用UFS日志记录功能而带来的性能提高。多TB文件系统还将受益于日志记录功能的可用性,因为在启用日志记录功能时,fsck命令可能无须运行。
多TB UFS文件系统的局限性包括:
在32位操作系统中,多TB UFS文件不被支持。
无法在运行32位Solaris内核的系统上安装容量超过1 TB的文件系统。
无法在运行64位Solaris内核的系统上从一个容量超过1 TB的文件系统进行引导。该局限性使你无法将root (/)文件系统放置在一个多TB文件系统上。
这些系统不支持大小超过1 TB的单个文件。
每TB UFS文件系统的最大文件数是1百万。比如4个TB的文件系统,就最多有4百万个文件数。此限制用于节省使用fsck命令检查文件系统所花费的时间。
在多TB UFS文件系统上设置的最高限额是块大小为1024字节的2 TB。
使用fssnap命令可以创建多TB UFS文件系统的快照。
1.创建多TB UFS快照
在12.2.7节中介绍过UFS快照,UFS快照的大小是有限制的,每个文件不能大于512 GB。在多TB UFS系统中创建UFS快照,其大小限额也和普通UFS系统一样不能大于512 GB。
需要指出的是,在建立多TB UFS快照时,不论你指定后备存储文件名与否,都将产生多个小于512 GB的文件,而且文件名的后缀为.2,.3等。
例12-6 建立大小为1.6 TB的后备存储文件。
# fssnap -F ufs -o bs=/var/tmp /data2
/dev/fssnap/0
# /usr/lib/fs/ufs/fssnap -i
Snapshot number : 0
Block Device : /dev/fssnap/0
Raw Device : /dev/rfssnap/0
Mount point : /data2
Device state : idle
Backing store path : /var/tmp/snapshot0
Backing store size : 0 KB
Maximum backing store size : Unlimited
Snapshot create time : Fri Sep 10 13:13:02 2004
Copy-on-write granularity : 32 KB
# ls /var/tmp
snapshot0 snapshot0.2 snapshot0.3 snapshot0.4
本例中,我们没有指定后备存储文件名,系统自己指定了文件名,并将其分为四个文件,这四个文件都是/dada2目录的快照。
2.如何创建多TB UFS文件系统
创建多TB UFS文件系统步骤:
(1)成为超级用户;
(2)在逻辑卷上创建多TB UFS文件系统。
下面是创建1.8T的文件系统。
# newfs /dev/md/rdsk/d99
newfs: construct a new file system /dev/md/rdsk/d99: (y/n)? y
/dev/md/rdsk/d99: 3859402752 sectors in 628158 cylinders of 48 tracks,
128 sectors
1884474.0MB in 4393 cyl groups (143 c/g, 429.00MB/g, 448 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 702...
Initializing cylinder groups:
........................................................................
super-block backups for last 10 cylinder groups at:
3850872736, 3851751456, 3852630176, 3853508896, 3854387616, 3855266336,
3856145056, 3857023776, 3857902496, 3858781216,
#
(3)校验新的文件系统。
# fsck /dev/md/rdsk/d99
** /dev/md/rdsk/d99
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 2 used, 241173122 free (0 frags, 241173122 blocks, 0.0%
fragmentation)
#
(4)Mount新的文件系统。
# mount /dev/md/dsk/d99 /bigdir
# df -h /bigdir
Filesystem size used avail capacity Mounted on
/dev/md/dsk/d99 1.8T 64M 1.8T 1% /bigdir |
|