创建 zpool 后,是否可以将更多物理驱动器添加到镜像 vdev?
例如,如果使用以下命令创建 zpool:
zpool create test_pool mirror /dev/sd0 /dev/sd1 mirror /dev/sd2 /dev/sd3
Run Code Online (Sandbox Code Playgroud)
是否可以向 vdev 添加更多驱动器以增加其冗余?即镜像驱动器的数量可以从1增加到2吗?
我有一个 zpool 现在在断电重新启动服务器和设备名称后显示为 FAULTED 状态。我知道我通过按设备名称添加 vdevs 搞砸了,但不知道它可以在创建和填充池后更改。目前,池正在寻找“/dev/sde”(而不是“/dev/sdc”),“/dev/sde”是根 fs 所在的设备,我不知道如何在不进行任何恢复的情况下进行恢复更糟糕。
希望有一种方法可以简单地重新配置 zpool 以使用“sdc”,以便能够使用“by-id”命名导出和重新导入,以避免将来发生这种情况。
root@boxey:~# zpool status
pool: data
state: FAULTED
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
data UNAVAIL 0 0 0 insufficient replicas
raidz1-0 UNAVAIL 0 0 0 insufficient replicas …Run Code Online (Sandbox Code Playgroud) 我创建了一个 ZFS RAIDZ2 / Raid 6 文件系统,我相信它将在 2 个磁盘上存储奇偶校验。
root@zfs-demo:/data# zpool status
pool: data
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
errors: No known data errors
Run Code Online (Sandbox Code Playgroud)
我有一个 1GB 的文件
root@zfs-demo:/data# ls -alh
total 1023M
drwxr-xr-x 2 root root 3 Dec 17 18:22 .
drwxr-xr-x 19 root root 4.0K Dec …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令创建 ZFS 池:
zpool create MyPool disk /dev/sda
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
不能使用“/dev/disk”:必须是块设备或常规文件
我觉得我应该能够找到有这个问题的人,但我一直没能找到。/dev/sda是一个空白驱动器。我哪里错了?在创建 zpool 之前是否必须格式化驱动器?如果是这样,我使用什么格式?
Solaris 中加密 zpool 的方法是什么?所有支持 ZFS 加密的文档都谈到使用“zfs create”并在池中指定数据集。我刚刚成为几台 Solaris 服务器的 SA,它们都有加密的 zpool,但没有关于它们如何获得这种方式的文档。我知道这是可能的,因为这些服务器的池配置了加密,上面没有数据集。有任何想法吗?
我对 ZFS 还很陌生,所以也许我读错了。
重新启动我的服务器后,我不得不重新导入我的池,并且在执行某些操作时呈现出以下状态:
# zpool status -v
pool: data
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: scrub in progress since Sat Mar 11 09:54:23 2017
18.4M scanned out of 28.9T at 4.61M/s, (scan is slow, no estimated time)
0 repaired, 0.00% done
config:
NAME STATE …Run Code Online (Sandbox Code Playgroud) 我有一个 zpool,我们称之为“testpool”。
testpool 中包含 3 个设备,以及一个名为“test”的 zfs。
我需要将“测试”移动到一个新的、较小的池中。我想将新池命名为“testpool”。
基本上做到了以下几点。
zfs send testpool@backup > /tmp/test-dump
zpool export -f testpool
zpool create -f testpool newdevice
zfs receive -F testpool < /tmp/test-dump
Run Code Online (Sandbox Code Playgroud)
不幸的是,我发现 testpool@backup 快照是错误的快照。太老。我还没有重新分配旧测试池中的三个设备。(这 3 台设备都不是“新设备”,它们是单独的 3 台。)
有什么办法可以恢复这些设备中的数据吗?我在想,自从我将新的、较小的池命名为与旧的 zpool 相同的名称以来,我几乎是 SOL。但如果没有,那会很高兴知道。
编辑:更多信息
我做了一个'zpool import'并得到了这个。
bash-3.00# zpool import
pool: testpool
id: 14781458723915654709
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
testpool ONLINE
c5t8d0 ONLINE
c5t9d0 ONLINE
c5t10d0 ONLINE
Run Code Online (Sandbox Code Playgroud)
所以我猜我只需要使用它的数字标识符导入这个 zpool 的语法,同时给它一个新名称。
S。