标签: zfs

如何用每日快照制作一个冗余的桌面系统?(btrfs 准备好使用了吗?)

我想配置一个桌面系统,其中家庭文件系统将是冗余的(例如 RAID-1),并且每周都会拍摄快照。我已经用 ZFS 做到了这一点,快照系统非常棒,并且通过发送/接收,您可以轻松地在外部媒体上创建备份。不幸的是,在这一点上,我想要 GNU+Linux 而不是 FreeBSD 或 Solaris,所以我正在寻找好的替代方案的建议。

我认为我的选择是:

  1. btrfs - 它似乎正是我所需要的,它具有快照和命令,可让您轻松复制zfs send. 然而,所有文档都提到它仍然是实验性的。我似乎找不到任何关于其可靠性或可用性问题的实际报告。您能否向我指出有关该问题的任何信息,以澄清这是否是一个可能的选择?我对这个选项有很大的偏好,主要是因为我不想在 btrfs 准备好时重新格式化驱动器,但我没有关于它是否可用的信息,使用它是否是一个愚蠢的想法等等。 问题我无法回答的是“实验性”什么意思
  2. lvm 快照和 ext4 - 最好不要,因为在创建新文件时它会消耗大量空间。创建 200 GB 文件需要 200 GB 可用空间和 200 GB 额外空间用于快照。我也发现它不可靠——失败的元数据重写会导致无法读取的 PV。我想知道 btrfs 在这里会如何比较。
  3. RAID-1 阵列上的单个文件系统 (ext4),带有带有硬链接(如cp -al)的自定义 COW 快照。如果我不能使用 btrfs,这是我目前的偏好。

那么 btrfs 的实验性如何,我应该选择哪个,我还有其他选择吗?如果我不保留外部增量备份怎么办,这会影响我的选择吗?

rsync zfs snapshot lvm btrfs

12
推荐指数
2
解决办法
1608
查看次数

tar 和 gzip 的管道进出

我正在尝试了解如何从命令通过管道传输到 gzip、cpio 或 tar 之类的东西。

有问题的命令属于 ZFS 系统。我在 Ubuntu Linux 10.04.3 上运行 ZFS。

我使用的命令是;

To create a snapshot;
zfs snapshot media/mypictures@20070607

To copy the snapshot to a directory;
zfs send media/mypictures@20070607 > ~/backups/20070607

Then I can also pipe into gzip
zfs send media/mypictures@20070607 | gzip > ~/backups/20070607.gz
Run Code Online (Sandbox Code Playgroud)

这些部分我理解。

但我的第一个问题是,我将如何通过管道输入 tar + gzip?

这个?

zfs send media/mypictures@20070607 | tar czvf > ~/backups/20070607.tar.gz
Run Code Online (Sandbox Code Playgroud)

我的另一个问题是如何从 tarball 或 gzip 中获取数据?

我必须使用 zfs recieve media/mypictures@20070607 < ~/backups/20070607

那么如果我使用 tar 会不会是这样?

zfs recieve media/mypictures@20070607 | tar …
Run Code Online (Sandbox Code Playgroud)

linux compression filesystems zfs

12
推荐指数
2
解决办法
5万
查看次数

如何在不影响当前数据的情况下访问 ZFS 快照的内容?

我有一个 ZFS 数据集,它每小时拍摄一次快照。昨天修改了一些需要还原的文件;但是,数据集有不应该恢复的持续更改。

我有哪些选项可以在不干扰当前数据副本的情况下访问快照?我可以将只读模式的快照挂载到新的挂载点吗?

zfs

11
推荐指数
1
解决办法
2万
查看次数

ZFS 或 LVM 或 MD 冗余异构存储方案

我遇到了大多数人遇到的相同问题:如何创建可靠的个人存储解决方案,因为:

  1. 硬盘驱动器以惊人的规律发生故障。丢失文件是不可接受的。
  2. 我会不时购买新的硬盘。不可避免地,最佳价格/GB 的大小与上次购买的 HDD 不同。
  3. 2 意味着随着时间的推移,我有一个异构的磁盘集合。我想全部使用它们,故障磁盘通常会被更大的磁盘替换。

  4. 对我来说,数据完整性和可靠性比速度更重要。

因此,在将我的头撞到这个问题上几天之后(并且在我的脑后多年),我提出了以下解决方案。我将描述一个基于本地 linux ZFS 测试过的解决方案,它在 Ubuntu PPA 中可用,但 LVM、MD 和 btrfs 可用于实现相同的目标。为此,我将使用 RAID1(ZFS 镜像 vdevs)。

  1. 给定您的一组驱动器,将它们分成两组磁盘,使每组的容量尽可能接近另一组。
  2. 对较大的磁盘进行分区,以便在另一组中存在与其中一个较小磁盘完全相同大小的分区。
  3. 创建镜像 vdevs,以便每个磁盘在另一个磁盘上都有自己的镜像。

例如,考虑一组新的 2TB 驱动器、一个旧的 750GB 驱动器、2 个旧的 400GB 驱动器和一个旧的 500GB 驱动器。最佳镜像分区有 2TB 的可用空间,如下图所示,其中“:”分隔分区,“|”分隔 分离磁盘:

+------------------------------------------------------------------+
| 2TB (sda1)        : (sda2)       : (sda3)       : (sda4)         |
+------------------------------------------------------------------+--+
| 750 GB (sdb)      | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1)  :XX|
+---------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

创建您的 zpool 作为

zpool create archive mirror /dev/sda1 …
Run Code Online (Sandbox Code Playgroud)

hard-drive zfs software-raid lvm raid-1

10
推荐指数
1
解决办法
3246
查看次数

在外部 USB 驱动器上使用 ZFS 在 Ubuntu 中进行备份

精确地运行Ubuntu 12.04并希望使用ZFS格式化外部 USB HDD 以将其用作我的目录的备份驱动器。

由于它只是一个驱动器,我对自我修复不感兴趣,因为我理解这需要 2 个或更多磁盘的 RAID 配置才能正确执行。因此,目前能够使用 ZFS 本机功能拍摄我的外部备份驱动器的快照就足够了。

计划是使用--inplace选项将我的主文件夹同步到 ZFS 驱动器上,以减少快照大小。这有望让我在ZFS驱动器上保留数周的主目录快照。目录所在的操作系统的 HDD是ext4,如果这有什么不同的话。我还希望在我的 Ubuntu 中拥有本机ZFS支持,而不是FUSE

我应该如何使用命令行在 Ubuntu 中实现这一目标?(不是整个备份,只是格式化)。

backup zfs

10
推荐指数
1
解决办法
9260
查看次数

zpool:池 I/O 当前暂停

在 OSX 上使用ZFS并且我有 zpool,它处于活动状态且在线:

NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
WD_1TB    931G   280G   651G    30%  1.00x  ONLINE  -
Run Code Online (Sandbox Code Playgroud)

但我实际上无法安装它。

$ sudo zfs mount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended
Run Code Online (Sandbox Code Playgroud)

或卸载它:

$ sudo zfs unmount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended
Run Code Online (Sandbox Code Playgroud)

甚至摧毁它:

$ sudo zpool destroy -f WD_1TB
cannot open 'WD_1TB': pool I/O …
Run Code Online (Sandbox Code Playgroud)

mount disk-utility zfs macos

9
推荐指数
1
解决办法
2万
查看次数

系统升级/重启后,我的 ZFS 数据集消失了 (ubuntu)

我最近确实将我的小 NAS 升级到 ubuntu 14.04,最初一切正常。我习惯于在重新启动后重新导入我的 ZFS 池,因此在 2 天前重新启动后挂载点消失也就不足为奇了。但是这次我无法重新导入它,当我开始仔细观察时,整个 ZFS 数据集也消失了,我开始想不通要尝试什么(我找到的谷歌结果也是如此)。

$ zpool list 或 zpool status 没有可用的池

$ zfs 列出没有可用的数据集

$ ls /dev/disk/by-id/ ... 磁盘,因为我在我的配置中使用过它们 ... 没有丢失

在 2 天前重新启动之前一切正常,在重新启动之前我确实运行了一些升级,包括内核(通过 apt 进行标准升级)。重新安装/进一步升级或返回到以前的版本(在 grub 中选择)都没有帮助。

让它重新运行真的很酷,特别是因为我为了它承诺的可靠性而切换到 ZFS。如果整个存储突然消失,那么好的数据冗余对我没有帮助......

有任何想法吗?

zfs ubuntu

8
推荐指数
1
解决办法
7780
查看次数

什么是 ZFS 旧挂载点?

当我做快照时,我试图理解 ZFS 的工作方式。当我在机器上使用 zfs list 时,我得到一些安装点和一些路径。例如我得到类似的东西:

rpool/ROOT/s10x_u10_wos_17b      5.3gb   58.2gb    5.3gb     /
Run Code Online (Sandbox Code Playgroud)

我将 root 作为安装点/

我的第一个想法是存在实际的文件,当我导航到该/rpool目录时,没有 ROOT 目录。经过一番思考,我发现它/rpool/ROOT实际上是安装在遗产上的,所以它一定在其他地方。

有人可以解释一下当它安装在旧版上时文件在哪里,也许为什么使用这种旧版模式?

linux zfs solaris

8
推荐指数
2
解决办法
1万
查看次数

如何回滚 ZFS 快照中的特定目录?

是否可以回滚到快照中的某个目录?例如,给定快照tank/home@snapshot_week_01,我可以回滚到类似的内容tank/home/louis@snapshot_week_01而不回滚其中的所有其他文件目录tank/home吗?

linux backup zfs snapshot archiving

8
推荐指数
2
解决办法
7215
查看次数

似乎没有什么可以解释 Linux 下缺少的 5GB 内存

我有 Kubuntu 16.04 并且正在将 ZFS 用于大数据分区 (RAIDZ1)

我缺少 5GB 的内存并且无法找到它去了哪里。不,它不是缓存

根据我能想到的所有工具,我目前有以下统计数据:

Actively used:  9458.3 MB
Inacively used: 2544.5 MB
Mapped for IO:  2433.0 MB
Buffers:         242.6 MB
Slab:           6669.2 MB
Page Tables:      91.0 MB
Cached:         3758.1 MB
Dirty:             0.1 MB
Writeback:         0.0 MB
Free:           1856.5 MB
------------------------------
Total:         27053.3 MB
Total Memory:  32133.5 MB
------------------------------
Missing ???:    5080.2 MB
Run Code Online (Sandbox Code Playgroud)

所以 5 GB!不考虑 RAM。他们去了哪里?

工具输出

纳米:

           RAM     High      Low     Swap    Page Size=4 KB                                                        ?
? Total MB     32133.5     -0.0     -0.0   8195.5 …
Run Code Online (Sandbox Code Playgroud)

memory linux kubuntu zfs

8
推荐指数
1
解决办法
1927
查看次数