oracle 删除 快照,创建和销毁 ZFS 快照

创建和销毁 ZFS 快照

快照是使用 zfs snapshot 或 zfs snap 命令创建的,该命令采用要创建的快照的名称作为其唯一参数。快照名称按如下方式指定:

filesystem@snapname

volume@snapname

快照名称必须满足ZFS 组件命名要求中所述的命名要求。

在以下示例中,创建了一个 tank/home/cindy 的快照,名为 friday。

# zfs snapshot tank/home/cindy@friday

通过使用 –r 选项可为所有后代文件系统创建快照。例如:

# zfs snapshot -r tank/home@snap1

# zfs list -t snapshot -r tank/home

NAME USED AVAIL REFER MOUNTPOINT

tank/home@snap1 0 - 2.11G -

tank/home/cindy@snap1 0 - 115M -

tank/home/lori@snap1 0 - 2.00G -

tank/home/mark@snap1 0 - 2.00G -

tank/home/tim@snap1 0 - 57.3M -

快照没有可修改的属性。也不能将数据集属性应用于快照。例如:

# zfs set compression=on tank/home/cindy@friday

cannot set property for 'tank/home/cindy@friday':

this property can not be modified for snapshots

使用 zfs destroy 命令可以销毁快照。例如:

# zfs destroy tank/home/cindy@friday

如果数据集存在快照,则不能销毁该数据集。例如:

# zfs destroy tank/home/cindy

cannot destroy 'tank/home/cindy': filesystem has children

use '-r' to destroy the following datasets:

tank/home/cindy@tuesday

tank/home/cindy@wednesday

tank/home/cindy@thursday

此外,如果已从快照创建克隆,则必须先销毁克隆,才能销毁快照。

有关 destroy 子命令的更多信息,请参见销毁 ZFS 文件系统。

保持 ZFS 快照

不同的自动快照或数据保留策略可能意味着会无意中破坏之前的快照。如果删除的快照是正在进行的 zfs 发送和接收操作的一部分,则该操作可能会失败。要避免这种情况,请考虑为快照设置保持。

保持快照可以防止它被销毁。此外,该功能支持在删除一个带有克隆的快照时暂挂最后一个克隆的删除操作(使用 zfs destroy – d 命令)。每个快照都有一个关联的用户引用计数,其初始值为 0。在一个快照上设置一个保持标志时,此计数递增 1;释放一个保持标志时,此计数递减 1。

在先前的 Oracle Solaris 发行版中,只有在快照无克隆时,才能使用 zfs destroy 命令销毁快照。在此 Oracle Solaris 发行版中,快照的用户引用计数也必须为零。

可以保持一个快照或一组快照。例如,以下语法在 tank/home/cindy/snap@1 上设置一个保持标志 keep。

# zfs hold keep tank/home/cindy@snap1

可以使用 –r 选项递归保持所有后代文件系统的快照。例如:

# zfs snapshot -r tank/home@now

# zfs hold -r keep tank/home@now

此语法向给定的快照或快照集添加一个引用 keep。每个快照都有其自己的标志名称空间,保持标志在该空间内必须是唯一的。如果一个快照上存在一个保持,尝试使用 zfs destroy 命令销毁受保持的快照将失败。例如:

# zfs destroy tank/home/cindy@snap1

cannot destroy 'tank/home/cindy@snap1': dataset is busy

要销毁保持的快照,须使用 –d 选项。例如:

# zfs destroy -d tank/home/cindy@snap1

使用 zfs holds 命令显示受保持的快照列表。例如:

# zfs holds tank/home@now

NAME TAG TIMESTAMP

tank/home@now keep Fri Aug 3 15:15:53 2012

# zfs holds -r tank/home@now

NAME TAG TIMESTAMP

tank/home/cindy@now keep Fri Aug 3 15:15:53 2012

tank/home/lori@now keep Fri Aug 3 15:15:53 2012

tank/home/mark@now keep Fri Aug 3 15:15:53 2012

tank/home/tim@now keep Fri Aug 3 15:15:53 2012

tank/home@now keep Fri Aug 3 15:15:53 2012

可以使用 zfs release 命令释放对一个快照或一组快照的保持。例如:

# zfs release -r keep tank/home@now

释放快照后,可以使用 zfs destroy 命令销毁快照。例如:

# zfs destroy -r tank/home@now

有两个新属性用来表示快照保持信息:

defer_destroy 属性在下述情况下为 on:已使用 zfs destroy –d 命令将快照标记为延期销毁。否则,此属性为 off。

userrefs 属性设置为此快照上的保持数,也称为用户引用计数。

重命名 ZFS 快照

可以重命名快照,但是必须在从中创建它们的池和数据集中对它们进行重命名。例如:

# zfs rename tank/home/cindy@snap1 tank/home/cindy@today

此外,以下快捷方式语法等效于以上的语法:

# zfs rename tank/home/cindy@snap1 today

不支持以下快照 rename 操作,因为目标池和文件系统名称与从中创建快照的池和文件系统不同:

# zfs rename tank/home/cindy@today pool/home/cindy@saturday

cannot rename to 'pool/home/cindy@today': snapshots must be part of same

dataset

可以使用 zfs rename –r 命令以递归方式重命名快照。例如:

# zfs list -t snapshot -r users/home

NAME USED AVAIL REFER MOUNTPOINT

users/home@now 23.5K - 35.5K -

users/home@yesterday 0 - 38K -

users/home/lori@yesterday 0 - 2.00G -

users/home/mark@yesterday 0 - 1.00G -

users/home/neil@yesterday 0 - 2.00G -

# zfs rename -r users/home@yesterday @2daysago

# zfs list -t snapshot -r users/home

NAME USED AVAIL REFER MOUNTPOINT

users/home@now 23.5K - 35.5K -

users/home@2daysago 0 - 38K -

users/home/lori@2daysago 0 - 2.00G -

users/home/mark@2daysago 0 - 1.00G -

users/home/neil@2daysago 0 - 2.00G -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值