AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1031580
Accepted
CodyMouse
CodyMouse
Asked: 2020-08-27 04:59:09 +0800 CST2020-08-27 04:59:09 +0800 CST 2020-08-27 04:59:09 +0800 CST

通过 iSCSI 修剪/取消映射 Zvol

  • 772

我目前正在为无盘启动设置 SAN。我的后端由通过 iSCSI 共享的 ZFS-Vol 组成。到目前为止,除了 TRIM/UNMAP 之外,一切都运行良好。为了测试目的,我在 VirtualBox 中设置了两个运行 Ubuntu20.04 的 VM,它们通过具有静态 IPv4 地址的内部网络连接在一起。在目标 (tgt) 上获得了第二个用 ZFS 格式化的虚拟驱动器。在这个 zpool 上,我创建了一个 zVol 并使用 GPT 和 ext4 对其进行了格式化。

/etc/tgt/conf.d/iscsi.conf
<target example.com:lun1>
    <backing-store /dev/zvol/tank/iscsi_share>
        params thin_provisioning=1
    </backing-store>
    initiator-address 192.168.0.2
</target>

在启动器 (open-iscsi) 上,我使用此命令来引发 TRIM 操作:

sudo mount /dev/sdb1 /iscsi-share
sudo dd if=/dev/zero of=/iscsi-share/zero bs=1M count=512
sudo rm /iscsi-share/zero
sudo fstrim /iscsi-share

但 shell 以“fstrim:/iscsi-share:不支持丢弃选项”响应。如果我在目标机器上发出这些命令,zVol 的“REFER”属性会按预期减少。

由于我在搜索网络时一无所获,我没有发现任何关于为什么这不起作用或者这是否可能的提示。


编辑:当我得到使用选项thin_provisioning的建议时。

在我重新分区驱动器并将其安装在启动器上后,我收到blk_update_request: critical target error, dev sdb, sector 23784 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0 了几个扇区的错误消息,在创建和删除我fstrim的测试文件后,发送消息

blk_update_request: I/O error, dev sdb, sector 68968 op 0x3:(DISCARD) flags 0x800 phys_seg 1 prio class 0
fstrim: iscsi-share: FITRIM ioctl failed: Input/output error

编辑:由于有提到LIO的答案,我现在也尝试了 targetcli。在那里,我在 /backstores/block/iscsi 和set attribute emultate_tpu=1. 在将它导入我的启动器后,我重新分区、格式化并将其安装在启动器上。然后我创建了我的测试文件,删除了它并发出了fstrim命令,它工作了。谢谢您的帮助。

zfsonlinux open-iscsi
  • 3 3 个回答
  • 1257 Views

3 个回答

  • Voted
  1. BaronSamedi1958
    2020-08-27T07:44:55+08:002020-08-27T07:44:55+08:00

    您要问的是高度 iSCSI 目标实现特定的。他们中的大多数不执行 1:1 SCSI 命令映射,因此如果 iSCSI 目标模拟硬盘 - 它不会绕过无法识别的命令(当然包括 UNMAP)到底层存储@后端除非您明确询问 iSCSI这样做的目标。使用 TGT,您可以在配置文件中为您的虚拟 LUN 指定“thin_provisioning=1”。

    • 6
  2. batistuta09
    2020-08-28T09:41:55+08:002020-08-28T09:41:55+08:00

    TRIM 在 Ubuntu 20.04 中默认启用每周运行一次,因此即使您手动运行它也应该没有问题。您可以在 fstrim.service 和 fstrim.timer 中检查以防万一:https ://askubuntu.com/questions/1034169/is-trim-enabled-on-my-ubuntu-18-04-installation

    但是,这确实看起来您需要在目标上启用 UNMAP,如前所述。由于许多 SATA SSD 存在 UNMAP 问题,因此默认情况下在 LIO 中禁用它:http ://www.linux-iscsi.org/Doc/LIO%20Admin%20Manual.pdf 。

    当然,在旁注中,当 iSCSI 目标本身支持 TRIM/UNMAP 而无需进一步修改时,事情会变得容易得多。这是一个示例:https ://forums.starwindsoftware.com/viewtopic.php?f=5&t=5343

    • 5
  3. Best Answer
    Michael Hampton
    2020-08-27T07:20:02+08:002020-08-27T07:20:02+08:00

    LIO 默认禁用 UNMAP。如果你想启用它,你应该emulate_tpu在目标上设置属性。

    • 2

相关问题

  • 当我添加第三个驱动器时,ZFS 会自动切换到容错模式吗?

  • `zfs send` 报告的大小是准确的还是估计的?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve