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
    • 最新
    • 标签
主页 / user-1021430

cre's questions

Martin Hope
cre
Asked: 2021-01-02 15:04:22 +0800 CST

zfs - 单磁盘设置:缺少的空间在哪里?[1TB (931,5 GiB) 磁盘:缺少 32,5 GiB 作为可用空间]

  • 0

简短的摘要:

在创建仅包含一个容量为 1TB (= 931GiB) 的磁盘的单个 zfs 磁盘池时,文件系统仅显示 899 GiB 可用空间(df -h或zfs list;zpool list实际上显示分区大小 (931 GiB) 减去一些开销(导致 928 GiB空间)。

更长的版本:

我试图设置一个 zfs 磁盘池,其中仅包含一个容量为 1TB(= 931,53 GiB)的磁盘:

# fdisk -l /dev/sdb
Disk /dev/sdb: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: xxxx
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxx

Device     Start        End    Sectors   Size Type
/dev/sdb1   2048 1953516976 1953514929 931.5G Linux filesystem

设置 zfs 池时

# zpool create -f -o ashift=12 tank /dev/sdb1;

缺少 32,5 GiB:

# zfs list
NAME   USED  AVAIL     REFER  MOUNTPOINT
tank   360K   899G       96K  /tank

是什么导致单个磁盘设置的 32.5 GiB 开销?

zpool list正在报告:

# zpool list
NAME   SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
tank   928G   444K   928G        -         -     0%     0%  1.00x    ONLINE  -

但这不是实际可用的空间,因为也在df -h报告:

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
tank                        899G  128K  899G   1% /tank

没有配额或预留集:

# zfs get quota
NAME  PROPERTY  VALUE  SOURCE
tank  quota     none   default

# zfs get reservation
NAME  PROPERTY     VALUE   SOURCE
tank  reservation  none    default

# zfs get refquota
NAME  PROPERTY  VALUE   SOURCE
tank  refquota  none    default

# zfs get refreservation
NAME  PROPERTY        VALUE      SOURCE
tank  refreservation  none       default

# zfs get usedbyrefreservation
NAME  PROPERTY              VALUE          SOURCE
tank  usedbyrefreservation  0B             -

创建 zpoolashift=9没有任何区别。

我可以忍受 3,5 GiB 的实际开销(= 分区大小与 zpool 报告的大小),但不能承受 32,5 GiB 或 29 GiB 的开销(= zfs 报告的大小 - zpool 报告的大小)磁盘。

尝试使用 btrfs 进行相同操作时,我获得了更多可用空间:

# btrfs filesystem show
Label: 'tank'  uuid: xxx
        Total devices 1 FS bytes used 128.00KiB
        devid    1 size 931.51GiB used 2.02GiB path /dev/sdb1

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/sdb1                   932G  3.8M  930G   1% /mnt

更多细节

# zfs --version
zfs-0.8.3-1ubuntu12.5
zfs-kmod-0.8.3-1ubuntu12.5

# uname -a
Linux xxx 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/os-release | grep VERSION
VERSION="20.04.1 LTS (Focal Fossa)"
VERSION_ID="20.04"
VERSION_CODENAME=focal

# zfs list -o space
NAME  AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
tank   899G  88.5K        0B     24K             0B      64.5K

更新:使用命令重新创建zpool create -oashift=12 tank /dev/sdb1。

没有不同:

# zpool list
NAME             SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
tank             928G   432K   928G        -         -     0%     0%  1.00x    ONLINE  -

# zfs list
NAME                  USED  AVAIL     REFER  MOUNTPOINT
tank                  336K   899G       96K  /tank

输出zdb tank | grep metaslab | tail -n 3:

# zdb tank | grep metaslab | tail -n 3
loading concrete vdev 0, metaslab 115 of 116 ...
        metaslab    114   offset   e400000000   spacemap      0   free       8G
        metaslab    115   offset   e600000000   spacemap      0   free       8G
        vdev          0         metaslabs  116          fragmentation  0%

输出zdb | grep metaslab_shift:

# zdb | grep metaslab_shift
            metaslab_shift: 33
20.04
  • 2 个回答
  • 1363 Views
Martin Hope
cre
Asked: 2019-12-04 09:09:33 +0800 CST

系统日志中的 udisks2 (udisksd) 错误:如何调查?

  • 4

我的 Ubuntu 18.04 Intel NUC 的系统日志收到以下错误消息的垃圾邮件:

udisksd[1369]: udisks_mount_get_mount_path: assertion 'mount->type == UDISKS_MOUNT_TYPE_FILESYSTEM' failed

我发现垃圾邮件是由于安装了 Docker 并运行了一些容器。但是随着 Docker 和所有容器停止,错误也会出现在 syslog 中,但并不经常发生。谷歌搜索此错误消息没有得到我的任何帮助。它与硬件无关,因为我更改了 NUC,并且我有一个类似的配置 NUC 正在运行,它没有此错误。

有人知道如何调查这个问题吗?

udisks syslog docker 18.04
  • 2 个回答
  • 2038 Views

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve