Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67163
  • 博文数量: 16
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 201
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 21:22
文章分类

全部博文(16)

文章存档

2011年(1)

2008年(15)

我的朋友

分类:

2008-08-11 16:38:13

郭窦盼
http://gdp.cublog.cn
转载请注明出处。

OpenSolaris使用了一种全新的文件系统zfs,zfs文件系统可以创建快照,对当前文件系统的状态进行记录,从创建快照的时间起,对文件系统中的内容进行的修改将完全被记录,如删除了一个文件,会在snapshot中保存该文件的一个备份,以备rollback时用。具体操作如下:
1.查看一下当前有哪些文件系统和snapshot:
dguo@opensolaris:~# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool                               2.62G  4.70G    55K  /rpool
rpool@install                         16K      -    55K  -
rpool/ROOT                          2.46G  4.70G    18K  /rpool/ROOT
rpool/ROOT@install                    15K      -    18K  -
rpool/ROOT/opensolaris              2.46G  4.70G  2.40G  legacy
rpool/ROOT/opensolaris@install      61.6M      -  2.22G  -
rpool/ROOT/opensolaris/opt          3.64M  4.70G  3.60M  /opt
rpool/ROOT/opensolaris/opt@install    31K      -  3.60M  -
rpool/export                         162M  4.70G    19K  /export
rpool/export@install                  15K      -    19K  -
rpool/export/home                    162M  4.70G   162M  /export/home
rpool/export/home@install             19K      -    21K  -
由于我没有手动创建过文件系统和pool,所以只有一个pool:rpool,在rpool中,系统自动创建了一些文件系统,并创建了相应的snapshot,如rpool/export/home@install,意思是在rpool中创建了一个export/home的文件系统,zfs文件系统的特点是创建之后会自动mount,@install的意思是给该文件系统创建了一个snapshot,下面,我们来看一下如何创建自己的snapshot:
2.创建一个snapshot:
dguo@opensolaris:~# ls
core  Desktop  test  zfs_note
将文件系统rpool/export/home创建了一个snapshot,名为july11。
dguo@opensolaris:~# zfs snapshot -r rpool/export/home@july11
dguo@opensolaris:~# ls
core  Desktop  test  zfs_note
将export/home文件夹下的test目录和zfs_note文件删除
dguo@opensolaris:~# rm -r test/ zfs_note
可以看见相应文件已经没有了。
dguo@opensolaris:~# ls
core  Desktop
3.从一个snapshot中恢复:
dguo@opensolaris:~# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool                               2.62G  4.70G    55K  /rpool
……………………………………………………
rpool/export/home@july11             134K      -   162M  -
可以看出现在多了一个134K的rpool/export/home@july11,该项在删除操作之前的大小为0K,
从该snapshot中恢复:
dguo@opensolaris:~# zfs rollback -r rpool/export/home@july11
可以看出删除的文件都回来了。
dguo@opensolaris:~# ls -l
total 145011
-rw------- 1 dguo staff 148260388 2008-08-06 14:21 core
drwxr-xr-x 2 dguo staff         4 2008-08-09 15:57 Desktop
drwxr-xr-x 2 root root          5 2008-08-01 16:51 test
-rw-r--r-- 1 dguo staff       160 2008-08-11 14:49 zfs_note
4。如果对一个文件系统创建多个snapshot,则恢复到较前的snapshot时,较后的snapshot会丢失,如:
dguo@opensolaris:~# zfs snapshot -r rpool/export/home@july12
dguo@opensolaris:~# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool                               2.62G  4.70G    55K  /
……………………………………………………………………………………………………………
rpool/export/home@july11            92.5K      -   162M  -
rpool/export/home@july12                0      -   162M  -
dguo@opensolaris:~# zfs rollback -r rpool/export/home@july11
dguo@opensolaris:~# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool                               2.62G  4.70G    55K  /rpool
………………………………………………………………………………………………………
rpool/export/home@july11                0      -   162M  -
结论:zfs号称是一个全新的文件系统,与以往的所有文件系统都不同,没有了卷(volume)的概念,所有物理的磁盘组成一个pool,采用类似内存管理中malloc和free的方法来分配空间,文件系统的大小不必是固定的,而是可以动态增长的。这样可以方便的增加物理磁盘,在服务器上还是很有用的。而snapshot给普通用户也提供了一个方便的备份系统的工具,看来还真是有些用处的。



阅读(2243) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~