是否可以创建 ZFS 集群?或者您是否需要使用由 GlusterFS 管理的 UFS 格式池来走 ZFS 看似丑陋(至少对我而言)的路线?
我们的想法是看看是否可以扩展到 ZFS 应该能够顺利处理的多拍字节分布式存储。
任何指针,博客,帖子?
permanent errors今天在我的 zpool 上报告了几个。
pool: seagate3tb
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: none requested
config:
NAME STATE READ WRITE CKSUM
seagate3tb ONLINE 0 0 28
sda ONLINE 0 0 56
errors: Permanent errors have been detected in the following files:
/mnt/seagate3tb/Install.iso
/mnt/seagate3tb/some-other-file1.txt
/mnt/seagate3tb/some-other-file2.txt
Run Code Online (Sandbox Code Playgroud)
编辑:我确定这些CKSUM值是否准确。我正在编辑数据,并且可能错误地破坏了这些数据。它们可能是 0。不幸的是,我在我的笔记中找不到决定性的答案,现在错误已经解决,所以我不确定,但其他一切都是准确的/反映了 zpool …
我的团队目前有两台大型存储服务器,两台 NAS 都运行 debian linux。第一个是已有几年历史的一体式 24 磁盘 (SATA) 服务器。我们在其上设置了两个硬件 RAID,并在其上设置了 LVM。第二个服务器是 64 个磁盘,分为 4 个机箱,每个机箱都是硬件 RAID 6,通过外部 SAS 连接。我们使用 XFS 和 LVM 来创建 100TB 的可用存储。所有这些都运行得很好,但我们正在超越这些系统。构建了两个这样的服务器并且仍在增长,我们希望构建一些东西,让我们在未来增长、备份选项方面具有更大的灵活性,在磁盘故障时表现更好(检查更大的文件系统可能需要一天或更长时间),并且可以承受在高度并发的环境中(想想小型计算机集群)。我们没有系统管理支持,
因此,我们寻求的是一种相对低成本、可接受的性能存储解决方案,它将允许未来的增长和灵活的配置(想想具有不同操作特性的不同池的 ZFS)。我们可能超出了单个 NAS 的范围。我们一直在考虑将 ZFS(例如在 openindiana 上)或每个服务器的 btrfs 与运行在其上的 glusterfs 结合起来,如果我们自己做的话。我们正在权衡的只是咬紧牙关并投资于 Isilon 或 3Par 存储解决方案。
任何建议或经验表示赞赏。
显然,如果整个驱动器都死了,那么单个磁盘上的 RAID-Z 将无济于事。但是其他类型的错误呢?
根据我的经验,我有时会遇到无法读取的文件。在 Mac OS X 上,系统会挂起一段时间,然后返回错误。我将文件移到某处,并假设该文件有坏扇区或坏块,甚至可能是整个坏道。
我可以追溯到软盘时代,手动管理磁盘故障只是一项常见活动。当然你会尽快更换坏软盘,但有时你不能立即这样做,所以做法是找到坏区,将其分配给一个文件,然后永远不要删除该文件。
第一个问题是硬盘如何失效?我上面的假设有效吗?坏块坏了但整个驱动器仍然大部分可用是真的吗?如果是这种情况,那么 RAID-Z 似乎可以使用其他块(区域)的奇偶校验来修复磁盘的坏块或坏区域。
用例用于备份。如果我每周将数据推送到 8 TB 驱动器一次,将其视为 7 TB 数据驱动器加上 1 TB 奇偶校验是否有意义,希望额外的奇偶校验将帮助我从位腐烂、坏扇区或其他本地化驱动器故障?
如果该理论在技术上没有缺陷,那么可以配置 ZFS 来执行此操作吗?
编辑:我在发布这个问题之前看到了另一个问题。拆分为单独的分区,其中每个分区都组合在一起是一种选择。但在概念上,有可能让 N 个分区的块映射相互交织,这样一个条带,而逻辑上跨越 N 个分区的物理上会非常靠近。这是我的问题的要点“ZFS 可以配置为这样做吗?” 即只是 ZFS ...不是带有分区技巧的 ZFS。
我打算在我的系统(HP ML370 G5、Smart Array P400、8 SAS 磁盘)上使用 ZFS。我希望 ZFS 单独管理所有磁盘,以便它可以利用更好的调度(即我想在 ZFS 中使用软件 RAID 功能)。
问题是,我找不到禁用 RAID 控制器上的 RAID 功能的方法。现在,控制器将所有磁盘聚合到一个大的 RAID-5 卷中。所以 ZFS 看不到单个磁盘。
有没有办法完成这个设置?
我正在通过点对点 T1 线路发送增量 ZFS 快照,我们已经到了在下一次备份开始之前一天的快照几乎无法通过网络传输的地步。我们的发送/接收命令是:
zfs send -i tank/vm@2009-10-10 tank/vm@2009-10-12 | bzip2 -c | \
ssh offsite-backup "bzcat | zfs recv -F tank/vm"
Run Code Online (Sandbox Code Playgroud)
我有足够的 CPU 周期可用。是否有更好的压缩算法或替代方法可以用来将更少的数据推送到线路上?
我需要更换 FreeNAS 上 zpool 中的坏磁盘。
zpool status 显示
gptid/5fe33556-3ff2-11e2-9437-f46d049aaeca UNAVAIL 0 0 0 cannot open
Run Code Online (Sandbox Code Playgroud)
如何找到该磁盘的序列号?
更多的:
glabel status 给出:
Name Status Components
ufs/FreeNASs3 N/A da0s3
ufs/FreeNASs4 N/A da0s4
ufsid/4fa405ab96518680 N/A da0s1a
ufs/FreeNASs1a N/A da0s1a
ufs/FreeNASs2a N/A da0s2a
gptid/5f3c0517-3ff2-11e2-9437-f46d049aaeca N/A ada1p2
gptid/60570005-3ff2-11e2-9437-f46d049aaeca N/A ada3p2
gptid/60ebeaa5-3ff2-11e2-9437-f46d049aaeca N/A ada4p2
gptid/a767b8ef-1c95-11e2-af4c-f46d049aaeca N/A ada6p2
gptid/61925b86-3ff2-11e2-9437-f46d049aaeca N/A ada9p2
gptid/4599731b-8f15-11e1-a14c-f46d049aaeca N/A ada10p2
Run Code Online (Sandbox Code Playgroud)
我gptid/5fe33556在那里看不到。
并camcontrol devlist给出:
<Hitachi HDS723030BLE640 MX6OAAB0> at scbus0 target 0 lun 0 (pass0,ada0)
<ST3000VX000-9YW166 CV13> at scbus4 target 0 lun …Run Code Online (Sandbox Code Playgroud) 我发现许多网站都在谈论这样做,但我遗漏了一些重要的细节。一般步骤是
FLUSH TABLES WITH READ LOCKUNLOCK TABLES各种消息来源报告说,我正在使用的 InnoDB 实际上并不支持FLUSH. MySQL 用户手册指出有一个FLUSH TABLES...FOR EXPORT用于 InnoDB的变体,但这需要单独指定每个表,而不是备份整个数据库。我宁愿避免单独指定每个表,因为表列表很有可能与实际存在的表不同步。
我遇到的另一个问题是我计划做类似mysql -h"$HOST" -u"$USERNAME" -p"$PASSWORD" --execute="FLUSH TABLES WITH READ LOCK". 但是,这会在会话退出后立即解除锁定。这是有道理的,但也很烦人,因为我在拍摄快照时需要持有读锁。
我的另一个想法是使用 Percona XtraBackup 之类的工具进行热备份并拍摄备份快照,但我不想支付将所有数据写入第二个位置只是为了快照它的成本。
我计划使用 OpenSolaris 和 ZFS 构建一个文件服务器,它将提供两个主要服务 - 成为 XenServer 虚拟机的 iSCSI 目标和成为通用家庭文件服务器。我正在查看的硬件包括 2 个 4 端口 SATA 控制器、2 个小型引导驱动器(每个控制器上一个)和 4 个用于存储的大型驱动器。这允许每个控制器有一个空闲端口,用于升级阵列。
我有点困惑的是如何设置存储驱动器。对于性能,镜像似乎是王道。我很难看出使用 RAIDZ 而不是镜像会有什么好处。通过此设置,我可以看到两个选项 - 一个条带中的两个镜像池,或 RAIDZ2。两者都应该防止 2 个驱动器故障和/或一个控制器故障……RAIDZ2 的唯一好处是任何2 个驱动器都可能发生故障。在这两种情况下,存储都应该是容量的 50%,但第一个应该具有更好的性能,对吧?
我想解决的另一件事是具有两个以上设备的镜像阵列的好处。对于数据完整性,如果有的话,RAIDZ 比三向镜像有什么好处?由于 ZFS 维护文件完整性,RAIDZ 带来了什么……ZFS 的完整性检查不是否定 RAIDZ 奇偶校验的值吗?