收起左侧

希望增加对Zoned机械盘的支持

6
回复
1042
查看
[ 复制链接 ]

0

主题

2

回帖

0

牛值

江湖小虾

2025-5-22 11:29:46 显示全部楼层 阅读模式

先介绍一下这种机械盘,二手平台俗称加密盘,简单说就是只能在Linux系统使用,windows目前不支持。

“Zone机械盘”通常是指使用** 分区存储(Zoned Storage) 技术的硬盘,主要代表是 SMR(Shingled Magnetic Recording) **ZNS(Zoned Namespace) 驱动器。这些硬盘采用一种新的数据组织方式来提高容量密度,并主要用于大数据、归档存储、备份等场景。

这是一种大容量叠瓦盘,通常来自于数据中心淘汰,二手平台非常多,它浑身缺点,唯一的优点就是便宜,常见型号西数hc620 14T,二手价格500元左右。叠瓦盘在修改数据时才有劣势,对于垃圾佬存影视资源毫无影响,写入一次以后只读取,实测连续写入整盘速度稳定,毕竟本来就是数据中心归档存储的备份盘。

经过测试遇到的问题:飞牛无法直接将hc620初始化为存储空间,创建存储空间时会出错,只能提前将硬盘格式化为btrfs分区后插入飞牛,此时飞牛会将它识别为外接硬盘且能自动挂载。

外接挂载不如存储空间使用方便,无法从局域网共享直接访问到,另外对于外接存储的权限控制最好能支持,我不想让盘里的小姐姐被所有用户可见sweat

WX20250522-111510.png

WX20250522-111749.png

网上找的硬盘图⬇️

WX20250522-113214.png

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

6

主题

9261

回帖

0

牛值

管理员

2025-5-23 11:40:42 显示全部楼层
感谢反馈,这个我们转给技术评估一下
感谢回复,如果能支持真是我们垃圾佬的福音。 普通的Ubuntu系统只要安装了btrfs-progs之后就能正常给zone机械盘格式化、挂载等操作,可能是目前飞牛的创建存储空间操作中的某些逻辑与之冲突。  详情 回复
2025-5-24 19:14

0

主题

2

回帖

0

牛值

江湖小虾

2025-5-24 19:14:03 楼主 显示全部楼层
飞牛产品同学 发表于 2025-5-23 11:40
感谢反馈,这个我们转给技术评估一下

感谢回复,如果能支持真是我们垃圾佬的福音。

普通的Ubuntu系统只要安装了btrfs-progs之后就能正常给zone机械盘格式化、挂载等操作,可能是目前飞牛的创建存储空间操作中的某些逻辑与之冲突。

0

主题

2

回帖

0

牛值

江湖小虾

2025-6-29 12:52:41 楼主 显示全部楼层
经过搜索这种盘好像叫Host Managed-SMR机械盘.

2

主题

1

回帖

0

牛值

江湖小虾

2025-9-6 23:55:09 显示全部楼层

非常好!这些诊断信息非常关键,它明确指出了问题的根源。你的硬盘 /dev/sda 是一块 host-managed(主机托管)模式的 ZBC 硬盘,这与普通的硬盘完全不同。

🔍 诊断结果分析

  1. sudo cat /sys/block/sda/queue/zoned 返回 host-managed
    • 这确认了你的硬盘是 “主机托管式分区偏移扇区设备”。这是最高级别的分区管理要求。
    • host-managed 意味着: 操作系统和文件系统必须完全理解并严格遵循分区的写入规则。所有写入操作都必须在特定的分区内顺序进行,绝对不能进行随机写入,否则就会导致 Input/output error
  2. sudo smartctl -a /dev/sda 结果
    • 硬盘型号是 HGST HSH721414ALE6M0,这是一款知名的 14TB 企业级 SMR 硬盘。
    • SMART 健康状态为 PASSED,所有错误计数(Reallocated_Sector_Ct, Current_Pending_Sector 等)都是 0。这排除了硬盘物理损坏的可能性,问题 100% 出在软件支持层面。

💡 问题根源

你在飞牛图形界面创建存储空间时遇到的 Input/output error,根本原因是:
飞牛 NAS 的存储管理界面(或者其底层的逻辑)没有为这种 host-managed 模式的硬盘实现正确的分区写入管理。 它可能试图以传统的方式向硬盘写入元数据,而这违反了 host-managed 设备的规则,从而被硬盘固件拒绝,导致 I/O 错误。

🛠️ 解决方案与尝试

虽然你用 mkfs.btrfs -O zoned 成功格式化了硬盘,但挂载和使用它需要持续的分区管理支持。以下是可能的解决路径:

1. 检查内核支持的分区模式 (最关键的一步)

在 SSH 中运行以下命令,查看系统内核是否激活了对分区设备的支持:

bash

cat /sys/module/btrfs/parameters/zoned
  • 如果返回 Y,说明 Btrfs 文件系统模块支持分区设备。
  • 如果返回 N,说明不支持,这是最可能的情况。

如果返回 N,你可以尝试在挂载时强制启用:

bash

# 首先创建一个挂载点
sudo mkdir -p /mnt/test_hm_zone

# 尝试手动挂载,并明确指定 zoned 选项
sudo mount -t btrfs -o defaults,noatime,zoned /dev/sda /mnt/test_hm_zone
  • 如果挂载成功,用 df -h 查看是否出现 /mnt/test_hm_zone
  • 尝试在里面创建文件:sudo touch /mnt/test_hm_zone/testfile.txt
  • 如果以上都成功,说明在命令行层面是可行的,只是飞牛的图形界面不支持。

2. 尝试使用 libzbd 工具

libzbd 是一套用于管理和调试分区偏移扇区设备的用户空间工具。飞牛系统可能没有预装。

bash

# 尝试安装 libzbd-utils 或相关工具包
sudo apt update
sudo apt install zbd-utils

# 如果安装成功,使用以下命令查看硬盘分区信息
sudo blkzone report /dev/sda

这可以让你更深入地了解硬盘的分区状态。

3. 终极方案:修改挂载参数并手动管理

如果手动挂载可以成功,你可以放弃图形界面管理,转而通过命令行管理这块硬盘。

  1. 获取文件系统的 UUID
    bash

    sudo blkid /dev/sda
    
  2. 编辑 /etc/fstab 文件实现开机自动挂载
    bash

    sudo nano /etc/fstab
    

    在文件末尾添加一行(将 UUID 替换为上一步命令输出的结果):
    text

    UUID=你的UUID    /mnt/my_zoned_drive    btrfs    defaults,noatime,zoned    0    0
    

    保存退出。

  3. 然后创建挂载点并挂载
    bash

    sudo mkdir -p /mnt/my_zoned_drive
    sudo mount -a
    

    这样,硬盘就会在每次启动时自动挂载到 /mnt/my_zoned_drive,你可以通过 SSH 或 Docker 来使用它。

⚠️ 重要提醒

  • 兼容性风险host-managed 模式的支持在 Linux 生态中依然是比较前沿的功能,并非所有发行版和系统都完美支持。飞牛 NAS 作为一款面向大众的产品,其图形界面很可能尚未适配这种特殊模式。
  • 数据安全:在调试过程中,任何不正确的操作都可能导致数据丢失。请确保没有重要数据,或已做好备份。
  • 咨询官方:最好的方式是带着你的诊断信息(特别是 host-managed 这个结果)去联系飞牛官方支持,询问他们是否支持以及如何配置这类硬盘。

总结:你的硬盘非常特殊(host-managed),飞牛NAS的图形界面很可能无法直接支持。你最现实的解决方案是通过SSH命令行手动挂载和使用它,或者联系飞牛官方寻求支持。

root@PINGNAS:~# cat /sys/module/btrfs/parameters/zoned cat: /sys/module/btrfs/parameters/zoned: No such file or directory

根据用户提供的输出,/sys/module/btrfs/parameters/zoned 不存在,这可能有以下两种原因:

  1. 当前运行的内核中,Btrfs 模块没有启用 zoned 功能:这意味着编译内核时没有启用 CONFIG_BTRFS_FS_ZONED 选项,或者模块参数不支持。
  2. Btrfs 模块没有被加载:虽然之前使用 mkfs.btrfs 时已经安装了 btrfs-progs,但内核模块可能没有加载,或者加载的模块不包含 zoned 支持。

接下来可以尝试:

  1. 检查 Btrfs 模块是否加载
    bash

    lsmod | grep btrfs
    

    如果没有任何输出,说明 Btrfs 内核模块没有加载。可以尝试加载:
    bash

    modprobe btrfs
    

    然后再次检查 /sys/module/btrfs/parameters/zoned

  2. 如果模块已加载,但不存在 zoned 参数,则说明当前内核的 Btrfs 模块不支持 zoned 模式。这可能是因为飞牛NAS的内核编译时没有启用 CONFIG_BTRFS_FS_ZONED 选项。
    可以检查内核配置:
    bash

    zcat /proc/config.gz | grep CONFIG_BTRFS_FS_ZONED
    

    或者:
    bash

    cat /boot/config-$(uname -r) | grep CONFIG_BTRFS_FS_ZONED
    

    如果输出为 CONFIG_BTRFS_FS_ZONED=y=m,则表示支持;如果没有输出或输出为 # CONFIG_BTRFS_FS_ZONED is not set,则表示不支持。

  3. 如果内核不支持,那么即使使用 -O zoned 格式化,也无法挂载使用。因为挂载时需要内核支持才能正确处理分区写入。

解决方案:

  • 如果内核不支持:可能需要重新编译内核并启用 CONFIG_BTRFS_FS_ZONED,或者等待飞牛NAS更新内核版本。这是一个比较复杂的过程,并且可能会影响系统稳定性。
  • 如果内核支持但模块未加载:加载模块后应该就可以正常挂载。

尝试手动挂载:

即使没有 zoned 参数,也可以尝试手动挂载,因为模块可能已经内置了支持,只是参数接口不存在。

bash

sudo mount -t btrfs -o zoned /dev/sda /mnt/test_mount

如果挂载成功,则说明内核支持,只是参数文件不存在而已。

总结:

根据当前信息,最可能的原因是飞牛NAS的内核没有启用 Btrfs 的 zoned 模式支持。因此,即使格式化成功,也无法挂载和使用。

建议联系飞牛NAS官方,询问是否支持主机托管模式(host-managed)的分区偏移扇区设备(ZBC),以及如何启用相关内核功能。

如果官方不支持,你可能需要考虑更换硬盘,或者使用其他支持 ZBC 的操作系统(如最新版本的 Ubuntu Server、Proxmox VE 等)来使用这块硬盘。

cat: /sys/module/btrfs/parameters/zoned: No such file or directory 这个输出非常关键,它提供了重要的信息。

🔍 这个错误信息的含义

这个错误表明在你的飞牛 NAS 系统上,Btrfs 内核模块没有启用分区偏移扇区(Zoned)支持,或者该功能没有被编译到内核中。

具体来说:

  • /sys/module/btrfs/parameters/ 目录包含 Btrfs 文件系统模块的各种参数
  • 如果其中没有 zoned 这个参数文件,意味着:
    1. Btrfs 模块是在没有 CONFIG_BTRFS_FS_ZONED 配置选项的情况下编译的
    2. 或者当前加载的 Btrfs 模块版本太旧,不支持分区偏移扇区功能

🧩 这与你的问题直接相关

你在格式化时使用了 -O zoned 选项(用户空间工具支持),但现在系统无法挂载和使用这个文件系统,因为内核空间缺乏相应的支持

这解释了为什么:

  1. mkfs.btrfs 能够成功格式化(用户空间工具较新)
  2. 但在飞牛图形界面创建存储空间时出现 Input/output error(内核空间缺乏支持)

🛠️ 解决方案尝试

1. 检查内核配置

尝试检查当前内核是否编译了分区偏移扇区支持:

bash

# 尝试查看内核配置中是否有 ZONED 支持
zcat /proc/config.gz | grep -i zoned

或者

bash

# 查看 btrfs 相关的内核配置
zcat /proc/config.gz | grep -i btrfs

如果输出中没有 CONFIG_BTRFS_FS_ZONED=yCONFIG_BTRFS_FS_ZONED=m,则确认内核不支持此功能。

2. 尝试使用更通用的挂载选项

尽管可能性不大,但可以尝试不使用 zoned 选项挂载:

bash

sudo mount -t btrfs -o defaults,noatime /dev/sda /mnt/test_mount

如果这样能成功挂载,说明硬盘可能实际上不需要特殊的分区偏移扇区处理(尽管 host-managed 属性表明它需要)。

3. 检查已加载的内核模块

查看当前加载的 btrfs 模块信息:

bash

modinfo btrfs | grep -i zoned

4. 最后的尝试:使用 libzbd 工具

安装并尝试使用专门的分区设备工具:

bash

# 尝试安装分区设备工具
sudo apt update
sudo apt install zbd-utils

# 查看硬盘的分区信息
sudo blkzone report /dev/sda

# 尝试重置分区
sudo blkzone reset /dev/sda

⚠️ 现实情况评估

基于这些发现,情况变得清晰:

  1. 根本原因:飞牛 NAS 系统的内核没有编译对 Btrfs 分区偏移扇区功能的支持。
  2. 影响:你无法在飞牛 NAS 上正常使用这块 host-managed 模式的硬盘。
  3. 短期解决方案:你可能需要:
  • 联系飞牛官方支持,询问是否有支持分区设备的内核版本
  • 或者考虑不使用这块硬盘的分区特性(如果可能)
  1. 长期解决方案
  • 等待飞牛官方更新支持分区设备的内核
  • 考虑在其他支持分区设备的系统(如较新版本的 Ubuntu、Proxmox 等)上使用这块硬盘
  • 更换为常规的(非分区偏移扇区)硬盘

📝 总结

/sys/module/btrfs/parameters/zoned 文件不存在证实了飞牛 NAS 系统的内核缺乏对分区偏移扇区 Btrfs 的支持。这是导致你无法在图形界面中创建存储空间的根本原因。

你的硬盘是正常的,但飞牛系统目前无法提供所需的内核支持来正确管理这种特殊类型的硬盘。 你可能需要联系飞牛官方支持,询问他们是否有计划支持这类设备,或者是否有测试版内核可用。


以上是我问DS的,详细说明了飞牛不支持HC620的原因,我有两块HC620,DS教我格式化为f2fs就能用了。至于你说的不想让盘里的小姐姐被所有用户可见,也是可以解决的,具体就是SSH

sudo crontab -e后在最后一行输入

@reboot sleep 30 && /bin/bash -c 'if [ -b /dev/disk/by-uuid/你硬盘的UUID ]; then umount /dev/disk/by-uuid/你硬盘的UUID 2>/dev/null || true; umount "/vol00/HGST HSH721414ALE6M0" 2>/dev/null || true; mkdir -p "/vol1/1000/HGST14T01"; mount /dev/disk/by-uuid/你硬盘的UUID "/vol1/1000/HGST14T01"; fi'

解释一下上文/vol1/1000/HGST14T01可以修改为你想要的路径,先在飞牛文件管理器创建一个文件夹,我放在系统盘也就是vol1,1000是文件夹路径不可修改,HGST14T01可以修改为你想要的文件夹名。/vol00/HGST HSH721414ALE6M0"这里每块硬盘的信息都不一样,具体得df -h。还有你硬盘的UUID可以sudo blkid /dev/sda获取。每个人每块硬盘sd*都不一样,用df -h查看具体硬盘信息,有时候飞牛重启会从sda换成sdb或者sdc,所以操作尽量在一次开机内完成。

0

主题

1

回帖

0

牛值

江湖小虾

2025-9-9 19:08:43 显示全部楼层
66666966666

1

主题

2

回帖

0

牛值

江湖小虾

2025-9-10 22:06:26 显示全部楼层

希望飞牛能支持

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则