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

问题[loop-device](server)

Martin Hope
royarisse
Asked: 2021-11-19 10:59:43 +0800 CST

用作文件容器的多个循环设备性能不佳

  • 0

目前,我正在管理多个远程服务器的备份服务。备份是通过 rsync 写入的,每个备份都有自己的文件容器作为循环设备安装。主备份分区是 8T xfs 格式,环路设备在 100G 和 600G 之间,采用 ext2 或 ext4 格式。所以,这是简化的类似俄罗斯套娃的解决方案:

df -Th
> /dev/vdb1    xfs   8,0T   /mnt/backups
> /dev/loop1   ext2  100G   /mnt/srv1
> /dev/loop2   ext2  200G   /mnt/srv2

mount
> /dev/vdb1 on /mnt/backups
> /mnt/backups/srv1.ext2 on /mnt/srv1
> /mnt/backups/srv2.ext2 on /mnt/srv2

ls -R /mnt/backups
> /mnt/backups
> └─/mnt/backups/srv1.ext2
> └─/mnt/backups/srv2.ext2

主要问题是读/写速度,它们非常慢。此外,有时一切都会挂起并吃掉我所有的 cpu 和 ram。我可以看到循环设备导致了这种情况。

最近,我开始将容器从 ext4 切换到 ext2,因为我认为我真的不需要日志,希望它能提高速度。我也一直在从稀疏文件切换到非稀疏文件,希望它会降低 cpu/ram 的使用率。但问题仍然存在,有时会导致系统无响应。

因此,我正在寻找具有更快读/写速度的更好解决方案。此外,快速查看每个配置文件使用的磁盘空间也很重要(我df现在可以简单地使用,du会太慢)。从安全的角度来看,循环设备提供的分离很好,但也可以使用 rsync over ssh 来解决,因此不是必需的。

我一直在考虑缩小主 xfs 分区并使文件容器成为真正的 ext4 分区,但是当需要调整第一个分区的大小时,这会带来大量的停机时间。我一直在考虑使用virt-make-fsor sqashfs,因为我可以简单地获取文件大小来获取磁盘使用情况,但没有这些经验。

如果有更好的解决方案,有人有什么想法吗?

debian mount filesystems loop-device
  • 1 个回答
  • 91 Views
Martin Hope
AnnoyinC
Asked: 2021-06-16 00:04:36 +0800 CST

losttup 将磁盘映像安装为一个设备。如何分别环回分区?

  • 0

我有一个带有 2 个分区的磁盘映像。当我做#losetup -f <file>只/dev/loop0出现。我如何制作/dev/loop0p0和/dev/loop0p1出现?使用#parted /dev/loop0它确实显示存在 2 个分区。我需要将 2 个分区作为单独的设备 chroot 到主分区并在 esp 分区上设置 grub。

# sudo losetup -f disk.img 

得到:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     5G  0 loop 
sda      8:0    0 223,6G  0 disk 
├─sda1   8:1    0   300M  0 part /boot/efi
├─sda2   8:2    0 214,5G  0 part /
└─sda3   8:3    0   8,8G  0 part [SWAP]

预期的:

loop0
├─loop0p0
└─loop1p1

Parted 显示分区确实存在:

# parted
[ ... ]
(parted) print list,all
Model: Loopback device (loopback)
Disk /dev/loop0: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  135MB   134MB   fat32        efi   boot, esp
 2      135MB   5368MB  5232MB  ext4         main

[ ... ]
disk-image loop-device
  • 1 个回答
  • 569 Views
Martin Hope
clinical
Asked: 2012-07-14 01:47:06 +0800 CST

无法读取设备 /dev/loop0

  • 3

我正在尝试在我的 loop0 设备上创建一个加密驱动器。对于这个命令

/sbin/cryptsetup create cryptedDrive /dev/loop0

我收到以下错误

无法读取设备 /dev/loop0

这是我对 loop3 设备的 strace 输出:

(为了更好的粘贴 -> pastebin)

munmap(0xb7845000, 4096)                = 0
mlockall(MCL_CURRENT|MCL_FUTURE)        = 0
getpriority(PRIO_PROCESS, 0)            = 20
setpriority(PRIO_PROCESS, 0, -18)       = 0
stat64("/dev/loop3", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 3), ...}) = 0
open("/dev/loop3", O_RDONLY|O_SYNC|O_DIRECT|O_LARGEFILE) = 3
ioctl(3, BLKSSZGET, 0xbff2ad84)         = 0
fstatfs64(3, 84, {f_type=0x1021994, f_bsize=4096, f_blocks=46077, f_bfree=46033, f_bavail=46033, f_files=46077, f_ffree=45421, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
fstat64(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 3), ...}) = 0
open("/proc/mounts", O_RDONLY)          = 4
fstat64(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7845000
read(4, "rootfs / rootfs rw 0 0\nnone /sys"..., 1024) = 873
stat64("/dev/shm", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=40, ...}) = 0
stat64("/var/run", {st_mode=S_IFDIR|0755, st_size=460, ...}) = 0
stat64("/var/lock", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=60, ...}) = 0
stat64("/lib/init/rw", {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0
read(4, "", 1024)                       = 0
_llseek(4, 0, [0], SEEK_SET)            = 0
read(4, "rootfs / rootfs rw 0 0\nnone /sys"..., 1024) = 873
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/sys", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=3540, ...}) = 0
close(4)                                = 0
munmap(0xb7845000, 4096)                = 0
read(3, "", 512)                        = 0
write(2, "Cannot read device /dev/loop3.\n", 31Cannot read device /dev/loop3.
) = 31
close(3)                                = 0
munlockall()                            = 0
setpriority(PRIO_PROCESS, 0, 0)         = 0
exit_group(-22)                         = ?

(为了更好的粘贴 -> pastebin)

linux encryption loop-device
  • 1 个回答
  • 2917 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