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 / 问题

问题[btrfs](server)

Martin Hope
Jonas
Asked: 2023-03-18 02:09:46 +0800 CST

在快照之前同步还是不同步?

  • 5

BTRFS 上有一个 Postgres 数据库。我需要在数据库运行时对其进行备份。我应该btrfs filesystem sync在快照之前做还是btrfs subvolume snapshot自动为我做?

btrfs
  • 1 个回答
  • 39 Views
Martin Hope
dkd6
Asked: 2022-04-06 06:40:36 +0800 CST

btrfs - 失败的磁盘生成校验和错误,磁盘已更换,错误仍然存​​在

  • 1

我在 btrfs raid1 阵列中有一对 3TB 磁盘。

其中一个磁盘开始出现故障(smartd 显示坏扇区),因此我购买了一对新的 8TB 驱动器来替换阵列中的两个磁盘。

我将两者都替换为btrfs replace,然后运行了btrfs balance- 失败并显示以下消息:

[ 5063.136378] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912
[ 5063.140428] BTRFS error (device sdc): parent transid verify failed on 5153170751488 wanted 1433374 found 1417912

现在,我在更换磁盘之前就已经看到了这些消息,但是现在由于两个磁盘都已更换,我相信它与btrfs.

我的数据已完全备份,文件系统在线且工作正常,但由于此错误,我无法进行平衡。运行清理会产生少量无法纠正的错误,就像我更换磁盘之前一样。

我想知道我怎么能,也许:

  1. 找出损坏的文件并从备份中恢复它们
  2. 重置文件系统上的事务以消除错误
  3. 平衡时忽略错误

...或任何其他合理的解决方案。

谢谢!

storage smart btrfs
  • 1 个回答
  • 326 Views
Martin Hope
PetrK
Asked: 2022-01-08 01:22:28 +0800 CST

BTRFS 调整大小 - 可用空间不可用

  • 0

我正在尝试缩小 BTRFS 分区并使用该可用空间创建新的 EXT4 分区。

我做了btrfs filesystem resize -5g /

现在我有了这个(注意 Device slack 等于我缩小的):

orangepiplus2e:~:# btrfs device usage /
/dev/mmcblk2p2, ID: 1
   Device size:            14.15GiB
   Device slack:            5.00GiB
   Data,single:             7.66GiB
   Metadata,single:       768.00MiB
   System,single:          32.00MiB
   Unallocated:           725.00MiB

如何释放 5 GB 的 Device slack 以供使用?谷歌没有帮助我。

linux filesystems btrfs shrink
  • 1 个回答
  • 341 Views
Martin Hope
Greg Nelson
Asked: 2022-01-05 18:49:53 +0800 CST

新手 btrfs 用户:校验和失败和大量输入/输出错误

  • 0

一位室友向我建议,我应该使用 btrfs,而不是到目前为止我一直在做的事情,即使用带有克隆驱动器的 mdadm,并在阵列中添加一个额外的驱动器来“克隆”备份。该系统具有三个驱动器,它们都是物理上不同的型号:

  • /dev/sda: 东芝 HDWQ140
  • /dev/sdb: HGST HUS724040AL
  • /dev/sdc:WDC WDS250G2B0B

好吧,我已经安装了 btrfs,但现在它已经运行了将近一年,我发现我应该每周运行一个 cron 作业来“清理”它。我开始尝试为此设置一个脚本,尽管它看起来像是一个愚蠢的 DIY 系统,需要你在谷歌上搜索一个脚本(我发现的热门脚本来自 2014 年之类的东西)并安装它以保持你的文件系统运行。

当我在做所有这些管理工作时,我发现了一些需要移动的文件......我将跳过血淋淋的细节,但是将文件从一个 btrfs 文件系统移动到另一个文件系统并再次返回会产生各种“输入/输出”错误”(在 ext4 中从未见过),甚至这个 gem:

Jan  4 21:19:19 host kernel: [9771285.171522] attempt to access beyond end of device
Jan  4 21:19:19 host kernel: [9771285.171522] sda1: rw=1, want=70370535518208, limit=7814035087
Jan  4 21:19:19 host kernel: [9771285.171529] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 1, rd 0, flush 0, corrupt 5, gen 0

我假设这些是相关的。但这是真正愚蠢的事情。我不仅在已经存在一年的文件上遇到校验和错误,而且在我几个小时前从字面上复制到不同物理驱动器的文件上也遇到了校验和错误。此外,几乎所有这些文件都在巨大的文件中(例如 DVD iso 图像),如果这有任何迹象吗?

所以是的,我可能会同时看到三重驱动器故障,或者 btrfs 是否只是为我破坏我的文件?

此外,知识渊博的 btrfs 人员的每篇文章都包含一个可爱的小字“嗯,你应该从备份中恢复它......你确实有备份,不是吗”。所以告诉我,你们到底用什么来备份 4TB 硬盘?因为我不能确切地,你知道,把它写到 DVD 上,如果硬盘驱动器这么不可靠,那么备份到硬盘驱动器有什么好处呢?

这么严肃的问题:

  1. 这些校验和错误真的正常吗?
  2. 为什么我会在今天才复制的文件上看到它们?
  3. 定期磨砂足以防止这种情况发生吗?
  4. 我是否应该购买新的硬盘并丢弃机器中当前所有的硬盘,因为它们真的出现故障?
  5. 您建议如何备份多 TB 数据驱动器?

2022-01-07 更新:我smartctl在所有驱动器上运行,并且这些驱动器都没有报告任何问题。所有驱动器的原始 UDMA_CRC_Error_Count 为 0。试图恢复损坏的文件...复制到机器的 tar 文件在几个文件出现 I/O 错误后失败。真的不知道这里发生了什么:

  • 如果驱动器或电缆坏了,这会出现在 SMART 中,对吗?
  • 如果CPU或内存不好,系统就不会完美运行吗?(目前 115 天没有明显问题)?
  • 如果这是 btrfs 的一个全面的错误,它不会遍布整个互联网吗?

那么问题究竟出在哪里呢?

backup ubuntu-20.04 btrfs checksum
  • 1 个回答
  • 195 Views
Martin Hope
StFS
Asked: 2021-11-20 16:47:38 +0800 CST

是否可以从磁盘映像重建 BTRFS RAID?

  • 0

我有一台运行 6 磁盘 BTRFS RAID 配置的服务器。现在我的服务器由于(可能)PSU 问题而拒绝启动。我有一个新的 NAS 盒,我想将其用于此目的,但我想从旧设置中获取我的数据。

所以虽然我可以去买一个新的 PSU 并尝试让旧系统重新站起来,但我真的不想在上面花钱,因为无论如何我一得到它就会退役那里的数据。

所以我有一个想法,这可能是不可能的,但这就是我在这里问的原因。

您是否认为有任何方法可以获取这 6 个单独的磁盘,为所有磁盘创建映像,然后挂载映像并以这种方式重建 BTRFS 文件系统?

我有一台可以安装一个大驱动器的计算机,然后单独连接 6 个以创建 6 个 RAID 驱动器的映像,但我没有一台可以安装所有 6 个驱动器的计算机。

另一个问题是如何创建这些磁盘映像。我必须只使用 dd 还是有某种方法可以创建小于磁盘完整大小的图像文件?如果我必须有 6 个 4TB 磁盘映像文件,这可能会出现问题。

希望有人可以帮助解决这个问题......要么向我指出一些(希望是正确的)方向,要么只是说它无法完成。

raid btrfs
  • 1 个回答
  • 129 Views
Martin Hope
Jayson Reis
Asked: 2021-10-27 08:35:06 +0800 CST

如何使用 mdadm + luks + lvm 提高 RAID 5 的速度

  • 2

我想我对当前的服务器设置有点迷失了。它是 HP Proliant dl160 gen 6,我放置了 4 个旋转磁盘,其设置具有 mdmadm + luks + lvm 和 btrfs(也许我走得太远了?),它读取的 IO 速度确实受到了影响50MB/s 和 2MB/s 左右的写入速度,我感觉我搞砸了。

我注意到的一件事是我在块设备(sbd)上而不是在分区(sdb1)上设置了 mdadm,这会影响什么吗?

在这里可以看到fio --name=randwrite --rw=randwrite --direct=1 --bs=16k --numjobs=128 --size=200M --runtime=60 --group_reporting机器上几乎没有用的时候fio的输出。

randwrite: (groupid=0, jobs=128): err= 0: pid=54290: Tue Oct 26 16:21:50 2021
  write: IOPS=137, BW=2193KiB/s (2246kB/s)(131MiB/61080msec); 0 zone resets
    clat (msec): min=180, max=2784, avg=924.48, stdev=318.02
     lat (msec): min=180, max=2784, avg=924.48, stdev=318.02
    clat percentiles (msec):
     |  1.00th=[  405],  5.00th=[  542], 10.00th=[  600], 20.00th=[  693],
     | 30.00th=[  760], 40.00th=[  818], 50.00th=[  860], 60.00th=[  927],
     | 70.00th=[ 1011], 80.00th=[ 1133], 90.00th=[ 1267], 95.00th=[ 1452],
     | 99.00th=[ 2165], 99.50th=[ 2232], 99.90th=[ 2635], 99.95th=[ 2769],
     | 99.99th=[ 2769]
   bw (  KiB/s): min= 3972, max= 4735, per=100.00%, avg=4097.79, stdev= 1.58, samples=8224
   iops        : min=  132, max=  295, avg=248.40, stdev= 0.26, samples=8224
  lat (msec)   : 250=0.04%, 500=2.82%, 750=25.96%, 1000=40.58%, 2000=28.67%
  lat (msec)   : >=2000=1.95%
  cpu          : usr=0.00%, sys=0.01%, ctx=18166, majf=0, minf=1412
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,8372,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=2193KiB/s (2246kB/s), 2193KiB/s-2193KiB/s (2246kB/s-2246kB/s), io=131MiB (137MB), run=61080-61080msec

使用 dd 更新 1 次顺序写入

root@hp-proliant-dl160-g6-1:~# dd if=/dev/zero of=disk-test oflag=direct bs=512k count=100
100+0 records in 100+0 records out 52428800 bytes (52 MB, 50 MiB) copied, 5.81511 s, 9.0 MB/s

内核:5.4.0-89-generic

操作系统:Ubuntu 20.04.3

mdadm:4.1-5ubuntu1.2

lvm2:2.03.07-1ubuntu1

blkid 输出

/dev/mapper/dm_crypt-0: UUID="r7TBdk-1GZ4-zbUh-007u-BfuP-dtis-bTllYi" TYPE="LVM2_member"
/dev/sda2: UUID="64528d97-f05c-4f34-a238-f7b844b3bb58" UUID_SUB="263ae70e-d2b8-4dfe-bc6b-bbc2251a9f32" TYPE="btrfs" PARTUUID="494be592-3dad-4600-b954-e2912e410b8b"
/dev/sdb: UUID="478e8132-7783-1fb1-936a-358d06dbd871" UUID_SUB="4aeb4804-6380-5421-6aea-d090e6aea8a0" LABEL="ubuntu-server:0" TYPE="linux_raid_member"
/dev/sdc: UUID="478e8132-7783-1fb1-936a-358d06dbd871" UUID_SUB="9d5a4ddd-bb9e-bb40-9b21-90f4151a5875" LABEL="ubuntu-server:0" TYPE="linux_raid_member"
/dev/sdd: UUID="478e8132-7783-1fb1-936a-358d06dbd871" UUID_SUB="f08b5e6d-f971-c622-cd37-50af8ff4b308" LABEL="ubuntu-server:0" TYPE="linux_raid_member"
/dev/sde: UUID="478e8132-7783-1fb1-936a-358d06dbd871" UUID_SUB="362025d4-a4d2-8727-6853-e503c540c4f7" LABEL="ubuntu-server:0" TYPE="linux_raid_member"
/dev/md0: UUID="a5b5bf95-1ff1-47f9-b3f6-059356e3af41" TYPE="crypto_LUKS"
/dev/mapper/vg0-lv--0: UUID="6db4e233-5d97-46d2-ac11-1ce6c72f5352" TYPE="swap"
/dev/mapper/vg0-lv--1: UUID="4e1a5131-cb91-48c4-8266-5b165d9f5071" UUID_SUB="e5fc407e-57c2-43eb-9b66-b00207ea6d91" TYPE="btrfs"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/sda1: PARTUUID="fa30c3f5-6952-45f0-b844-9bfb46fa0224"

猫 /proc/mdstat

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdb[0] sdc[1] sdd[2] sde[4]
      5860147200 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 2/15 pages [8KB], 65536KB chunk

unused devices: <none>

lshw -c 磁盘

  *-disk
       description: SCSI Disk
       product: DT 101 G2
       vendor: Kingston
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/sda
       version: 1.00
       serial: xxxxxxxxxxxxxxxxxxxx
       size: 7643MiB (8015MB)
       capabilities: removable
       configuration: ansiversion=4 logicalsectorsize=512 sectorsize=512
     *-medium
          physical id: 0
          logical name: /dev/sda
          size: 7643MiB (8015MB)
          capabilities: gpt-1.00 partitioned partitioned:gpt
          configuration: guid=6c166e3e-27c9-4edf-9b0d-e21892cbce41
  *-disk
       description: ATA Disk
       product: ST2000DM008-2FR1
       physical id: 0.0.0
       bus info: scsi@1:0.0.0
       logical name: /dev/sdb
       version: 0001
       serial: xxxxxxxxxxxxxxxxxxxx
       size: 1863GiB (2TB)
       capabilities: removable
       configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
     *-medium
          physical id: 0
          logical name: /dev/sdb
          size: 1863GiB (2TB)
  *-disk
       description: ATA Disk
       product: ST2000DM008-2FR1
       physical id: 0.0.0
       bus info: scsi@2:0.0.0
       logical name: /dev/sdc
       version: 0001
       serial: xxxxxxxxxxxxxxxxxxxx
       size: 1863GiB (2TB)
       capabilities: removable
       configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
     *-medium
          physical id: 0
          logical name: /dev/sdc
          size: 1863GiB (2TB)
  *-disk
       description: ATA Disk
       product: WDC WD20EZBX-00A
       vendor: Western Digital
       physical id: 0.0.0
       bus info: scsi@3:0.0.0
       logical name: /dev/sdd
       version: 1A01
       serial: xxxxxxxxxxxxxxxxxxxx
       size: 1863GiB (2TB)
       capabilities: removable
       configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
     *-medium
          physical id: 0
          logical name: /dev/sdd
          size: 1863GiB (2TB)
  *-disk
       description: ATA Disk
       product: WDC WD20EZBX-00A
       vendor: Western Digital
       physical id: 0.0.0
       bus info: scsi@4:0.0.0
       logical name: /dev/sde
       version: 1A01
       serial: xxxxxxxxxxxxxxxxxxxx
       size: 1863GiB (2TB)
       capabilities: removable
       configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
     *-medium
          physical id: 0
          logical name: /dev/sde
          size: 1863GiB (2TB)

您在设置中看到任何可能有问题的地方吗?您认为添加带有 PCI 卡的 nvme 并将其用于缓存会有所帮助吗?

linux lvm mdadm btrfs
  • 2 个回答
  • 1051 Views
Martin Hope
dkd6
Asked: 2021-10-02 04:11:43 +0800 CST

SMART 显示不可读的扇区,btrfs 清理干净 - 这是正确的吗?

  • 7

我有一对 RAID1 中的磁盘,格式为btrfs.

磁盘会定期清理,我会收到结果通知。他们已经运行了大约 2-3 年,没有任何问题。

但是,我最近添加smartd到我的安装中,它立即抱怨其中一个驱动器中有少量不可读的扇区:

Device: /dev/sdc [SAT], 4 Currently unreadable (pending) sectors

我对该驱动器进行了清理,发现并纠正了相同数量的错误,但智能错误消息并没有消失。同一磁盘上的后续清理显示没有错误。

我不确定这些工具中的哪一个最准确 -smartd显示误报,或者btrfs缺少坏扇区,或者我可能误解了结果?

验证磁盘运行状况的最佳方法是什么?

谢谢!

storage smart btrfs
  • 2 个回答
  • 1181 Views
Martin Hope
catleeball
Asked: 2021-09-27 17:32:18 +0800 CST

RHEL8 上的 BTRFS - 编译内核模块或使用户空间工具工作

  • 1

语境

我最近安装了 RHEL 8 却没有意识到它不再支持 BTRFS。

不幸的是,我在 BTRFS RAID10 中有 4 个磁盘。我的其他磁盘上没有足够的空间来保存 BTRFS 磁盘上的数据,因此在从 USB 驱动器启动时将其全部复制到其他地方是不可能的。

我有我最初的问题,然后是一些关于我采取的方法失败的后续问题。随意只关注这个问题的“如何让 BTRFS 工作”部分,尽管如果你有任何部分的答案,我很想了解其他问题。

问题 1

  1. 是否有一种(相对)简单的方法可以让 BTRFS 在 RHEL8 上工作?

用户空间 btrfs-progs

我的第一次尝试是btrfs-progs使用以下内容进行编译和安装:

# Install deps
sudo dnf install libuuid-devel libblkid-devel lzo-devel zlib-devel libzstd-devel e2fsprogs-devel e2fsprogs-libs e2fsprogs libgcrypt-devel libsodium-devel libattr-devel
# Install deps for doc gen
sudo dnf install asciidoc xmlto source-highlight

# Shallow-clone latest release
git clone --depth 1 --branch v5.14.1 https://github.com/kdave/btrfs-progs.git
cd btrfs-progs
git switch -c v5.14.1

# Build
#   --disable-zoned since that feature needs kernel >=5.10
export CFLAGS="-O3 -pipe -frecord-gcc-switches -mtune=native -march=native"
export CPPFLAGS=$CFLAGS
export SODIUM_CFLAGS=$CFLAGS
export ZSTD_CFLAGS=$CFLAGS
export ZLIB_CFLAGS=$CFLAGS
export UUID_CFLAGS=$CFLAGS
export PYTHON_CFLAGS=$CFLAGS

./autogen.sh
./configure --with-crypto=libsodium --disable-zoned
make -j12
sudo make install

它似乎安装正确并且我的用户可以访问:

$ which btrfs
/usr/local/bin/btrfs

$ ls -1 /usr/local/bin/ | grep btrfs
btrfs
btrfsck
btrfs-convert
btrfs-find-root
btrfs-image
btrfs-map-logical
btrfs-select-super
btrfstune
fsck.btrfs
mkfs.btrfs

$ btrfs version
btrfs-progs v5.14.1 

但是,默认情况下,root 显然没有/usr/local/bin在其路径中。我添加了export PATH+=":/usr/local/bin" to /etc/profile and/root/.bash_profile , but neither of them seem to get sourced automatically when using sudo or when dropping into a root shell withsudo su`。

当指定二进制文件的完整路径时,它会抱怨它 can't open /dev/btrfs-control。查询我的本地搜索引擎,有人建议需要 udev,但已经安装(可能配置错误?)

$ sudo btrfs version
sudo: btrfs: command not found

$ sudo /usr/local/bin/btrfs device scan
Scanning for Btrfs filesystems
WARNING: failed to open /dev/btrfs-control, skipping device registration: No such file or directory
WARNING: failed to open /dev/btrfs-control, skipping device registration: No such file or directory
WARNING: failed to open /dev/btrfs-control, skipping device registration: No such file or directory
WARNING: failed to open /dev/btrfs-control, skipping device registration: No such file or directory
ERROR: there were 4 errors while registering devices

其他 BTRFS 命令似乎有效:

$ sudo /usr/local/bin/btrfs filesystem show /dev/sda
Label: 'wdred'  uuid: aaaa-bbbb-cccc-dddd-eeee
    Total devices 4 FS bytes used 2.13TiB
    devid    1 size 5.46TiB used 1.07TiB path /dev/sda
    devid    2 size 5.46TiB used 1.07TiB path /dev/sdc
    devid    3 size 5.46TiB used 1.07TiB path /dev/sdb
    devid    4 size 5.46TiB used 1.07TiB path /dev/sdd

但是,鉴于上述错误,我一直害怕挂载分区或对它们执行任何操作,因为担心它缺少的组件会导致它破坏我的数据。

问题 2、3、4

  1. 鉴于上述错误,尝试使用 btrfs 挂载磁盘是否安全?
  2. 上的/dev/btrfs-control错误是btrfs device scan怎么回事?
  3. 默认情况下,我怎样才能获得sudo并sudo su拥有/usr/local/bin它的路径?

BTRFS 内核模块

我想知道编译内核模块是否会更好,但是几乎没有内核黑客经验,结果很糟糕。

看来我需要CONFIG_BTRFS_FS=m在我的内核配置中设置才能启动。它目前不存在,我似乎记得能够在menuconfig.

$ grep "BTRFS" /boot/config-4.18.0-305.19.1.el8_4.x86_64 
# CONFIG_BTRFS_FS is not set

RHEL 文档提到了如何加载内核模块等,但没有提到如何构建它们。我咨询了 archwiki,并尝试从 Red Hat 站点下载 RHEL8 内核。RHEL8 的下载页面有一个带有 20G .iso 文件的“Sources”选项卡。我下载了它,安装了它,发现里面塞满了 .rpm 文件,看起来一点也不像 linux 内核源代码库。我有点失落。

然后我去了/usr/src/kernels/,初始化了一个 git repo,因为害怕我会破坏一些重要的东西,然后继续试图弄清楚如何构建内核模块或更改 menuconfig 中的内容。

$ cd /usr/src/kernels/4.18.0-305.19.1.el8_4.x86_64
$ sudo su
# git init
# git add -A
# git commit -m "Unmodified kernel"

# make mrproper
  HOSTCC  scripts/basic/bin2c
scripts/kconfig/conf  --syncconfig Kconfig
arch/x86/Makefile:184: *** Compiler lacks asm-goto support..  Stop.
make: *** [Makefile:1361: _clean_arch/x86] Error 2

由于缺乏 asm-goto 支持,互联网建议我可能需要elfutils-libelf-devel,但我似乎已经有了。

对于 funzies,我尝试使用clang和 with构建它gcc-toolset-10,但两者都有相同的错误。

问题 5

  • 任何想法为什么Compiler lacks asm-goto support?
  • 关于如何构建内核模块/修补内核/修改系统内核的好资源是什么?

系统信息

$ uname -a
Linux rhel 4.18.0-305.19.1.el8_4.x86_64 #1 SMP Tue Sep 7 07:07:31 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

$ gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)


$ scl run gcc-toolset-10 'gcc --version'
gcc (GCC) 10.2.1 20201112 (Red Hat 10.2.1-8)

$ clang --version
clang version 11.0.0 (Red Hat 11.0.0-1.module+el8.4.0+8598+a071fcd5)

感谢您阅读到这里!任何帮助表示赞赏。

redhat linux-kernel kernel-modules rhel8 btrfs
  • 1 个回答
  • 896 Views
Martin Hope
xogoxec344
Asked: 2021-09-10 23:44:26 +0800 CST

linux系统减速调试,sys使用率高

  • 0

我有一个远程 linux 系统,昨天变得超级慢。由于我设置的远程 luks 解锁似乎工作不可靠,并且在接下来的 10 天内我将无法物理访问机器,我正在尝试调试它而不是重新启动。

我习惯使用的系统状态工具是htop,dstat并且由于我dstat在 ssh 会话中运行,我可以看到从昨天 2021-09-09 08:51:42 开始,“sys”始终完全使用一个 cpu 核心 - 我猜测意味着内核?

我看不到任何罪魁祸首进程或线程htop。

我已经停止了所有用户服务并卸载了所有非必要的东西,这使系统再次响应更好,但仍然没有达到应有的速度(使用带有 SSD 的 Intel i7 CPU)。

我找到了https://tanelpoder.com/posts/high-system-load-low-cpu-utilization-on-linux/并安装了引用的https://0x.tools/以获得以下结果psn -G syscall,wchan:

=== Active Threads ========================================================================================

 samples | avg_threads | comm              | state                  | syscall   | wchan                    
-----------------------------------------------------------------------------------------------------------
     100 |        1.00 | (btrfs-cleaner)   | Running (ON CPU)       | [running] | 0                        
     100 |        1.00 | (dpkg)            | Disk (Uninterruptible) | fsync     | btrfs_commit_transaction 
     100 |        1.00 | (systemd-journal) | Disk (Uninterruptible) | ftruncate | wait_current_trans       
       1 |        0.01 | (sshd)            | Running (ON CPU)       | [running] | 0                        
       1 |        0.01 | (thermald)        | Disk (Uninterruptible) | [running] | ec_guard                 
       1 |        0.01 | (thermald)        | Running (ON CPU)       | [running] | 0    

这个dpkg过程可以解释为我试图以apt upgrade你通常期望的速度的 1/1000 运行哪个运行(只是一种感觉,没有测量它)。

也许我的 btrfs 根文件系统有问题...?我找不到btrfs-cleanerin htop,我想我会研究更多关于那是什么..

我昨晚确实跑了btrfs scrub一个,它完成得非常快,没有发现任何问题:

# btrfs scrub status /
UUID:             2f38e0ad-7f16-4a36-8096-b7981d47b4ff
Scrub started:    Thu Sep  9 23:59:00 2021
Status:           finished
Duration:         0:00:24
Total to scrub:   53.09GiB
Rate:             1.78GiB/s
Error summary:    no errors found

但是当我使用 nano 修改根分区上的配置文件时,加载和保存它现在超级慢。

我只是偶然发现了这一点:https ://www.reddit.com/r/btrfs/comments/fmucrq/btrfs_snapshots_make_entire_system_lag_cpu_usage/其中有一条听起来与我的问题相似的评论:

每次启动时和快照后 btrfs-transacti 和 btrfs-cleaner 都会完全用完一个核心,从而导致巨大的延迟

只是这表示它在启动和创建快照时只持续了几分钟,但是btrbk几天前我在这个系统上禁用了我的备份设置,当时其中一个连接的磁盘开始出现问题。

我不确定我的 btrfs 根文件系统是否正在使用qgroups,但我只是运行btrfs quota disable /了大约 10 秒并且没有给出任何反馈。

有人对我有任何其他提示如何调试/解决这个问题吗?

linux high-load btrfs linuxmint
  • 1 个回答
  • 95 Views
Martin Hope
Kyle Fransham
Asked: 2021-05-27 07:12:14 +0800 CST

btrfs - <ERROR> 中的数据使用情况,设备的 ioctl 不合适

  • 2

我正在尝试追踪我的 btrfs 文件系统上的一些空间正在使用什么。和之间有很大的区别,btrfs fi du -s /而且btrfs fi usage /区别似乎<ERROR>在运行时的部分btdu。

我如何追查导致这种<ERROR>用法的原因?

# btrfs fi du -s /
     Total   Exclusive  Set shared  Filename
     5.50GiB     5.50GiB       0.00B  /
# btrfs fi usage /
Overall:
    Device size:                  20.00GiB
    Device allocated:             12.28GiB
    Device unallocated:            7.72GiB
    Device missing:                  0.00B
    Used:                         11.59GiB
    Free (estimated):              8.22GiB      (min: 8.22GiB)
    Data ratio:                       1.00
    Metadata ratio:                   1.00
    Global reserve:               16.00MiB      (used: 0.00B)

Data,single: Size:12.00GiB, Used:11.50GiB
   /dev/sda2      12.00GiB

Metadata,single: Size:256.00MiB, Used:89.03MiB
   /dev/sda2     256.00MiB

System,single: Size:32.00MiB, Used:16.00KiB
   /dev/sda2      32.00MiB

Unallocated:
   /dev/sda2       7.72GiB

相关btdu输出:

--- / --------------------------------------------------------------------------------
   ~12.0 GiB  [##########] /<DATA>  
   ~253.1 MiB [          ]  <METADATA>
   ~32.0 MiB  [          ]  <SYSTEM>
   
   
--- /DATA ----------------------------------------------------------------------------
    ~6.5 GiB [##########] /<ERROR>
    ~2.1 MiB [          ] /<ROOT_TREE>
    ~5.5 GiB [########  ] /@ 
    
    
--- /DATA/ERROR ----------------------------------------------------------------------
    ~6.0 GiB [##########]  logical ino (Inappropriate ioctl for device)
  ~509.9 MiB [          ]  logical ino (No such file or directory)

所以我的结论是我系统上的实际文件占用了大约 5.5GB,其余的使用来自 btdu 报告为错误的东西。

笔记/我尝试过的事情:

  • 我已经运行了 在任何网站上都能找到的各种口味的balance, rescue, 。没运气。check --repairscrub
  • 我已卸载所有其他磁盘 / nfs 驱动器 / 等。(安装下没有隐藏文件。)
disk-space-utilization filesystems btrfs
  • 1 个回答
  • 367 Views

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