Questions tagged «block-device»

支持以固定大小的块,扇区或群集读取/写入数据的数据存储设备。


3
永久blockdev setra预读设置
我在SLES 11 SP2服务器上/dev/sda1和/dev/sdb1上面安装了一些SSD ,并且可以通过以下方式调整预读设置blockdev --setra: sudo blockdev --setra 4096 /dev/sda sudo blockdev --setra 4096 /dev/sdb sudo blockdev --getra /dev/sda 4096 sudo blockdev --getra /dev/sdb 4096 如何在启动时保持此设置?具体来说,中是否有相应的设置sysctl.conf,还是我必须准备一个rc脚本才能实现此目的?
14 block-device  ssd  sles 

1
GNU / Linux:覆盖块设备/可堆叠块设备
GNU / Linux具有覆盖目录的联合安装。因此,您可以在只读目录的顶部安装可写目录。卸载可写目录时,未触及只读目录。 我正在寻找用于块设备的相同功能-最好将可写部分存储在文件中。所以我想运行类似的东西: device-setup /dev/newdevice /dev/read-only-device overlayfile 如果我写到/ dev / newdevice,则更改应存储在overlayfile中。如果读取写入的扇区,则应该从overlayfile中获取数据。如果读取未写入的扇区,则应该从/ dev / read-only-device获取数据。 是否存在这样的工具?

2
如何从分区设备名称获取块设备名称?
我正在寻找一种可移植的方式来获取/dev/sda给定分区设备名称(例如/dev/sda1)的父块设备名称(例如)。我知道我可以删除最后一个字符,但在某些情况下不起作用: MMC读卡器的名称通常为/dev/mmcblk0,而其分区的名称则为/dev/mmcblk0p1(请注意p)。 可选:某些块设备根本没有任何分区表,并且被格式化为单个分​​区。在这种情况下,分区设备和父块设备相同。 LVM的体积完全不同。我现在不需要支持他们,但是如果考虑到他们需要很少的额外努力,我也不会介意。

2
基于权重的VM块IO控制
我使用KVM管理我的虚拟机。我试图限制为VM提供的资源。我可以使用libvirt / cgroups限制为VM分配的CPU和内存。现在,我想通过应用一些权重来控制为每个VM分配的磁盘时间。我从cgroups看了blkio控制。由于VM只是一个Linux进程,因此我将能够使用cgroups,但是我不确定它是否也适用于异步IO。如果没有,有人可以提出一个好的替代解决方案吗?

6
原始块设备的比较
有没有可以让我比较两个块设备的实用程序(或某种外壳魔术)? 详细信息:我有一个大型(0.5 TB)RAID设备,已使用dd备份到稍大的SATA设备。该设备上有几个分区,但是我从“父”设备复制而不是从分区的设备节点复制(例如,我复制/ dev / hda而不是/ dev / hda1)。 我想验证备份是否正确/正确。 我曾考虑过在每个设备上运行md5sum,但是由于第二个设备略大于第一个设备,因此这不会给我准确的结果,因此多余的字节会更改哈希值。

5
防止USB外置硬盘进入休眠状态
有谁知道是否有一种优雅的方式告诉外部USB驱动器在一段时间不活动后不停止旋转?我见过基于cron的解决方案,该解决方案每分钟都会写入一个文件,但是没有什么闻起来像unixey一样优雅。我必须发出一个hdparm或scsi命令(通过OpenBSD中的sd驱动程序访问usb驱动器),以告诉该驱动器不休眠。恐怕这可能是机箱控制器内置的功能,因此除了将驱动器从机箱中取出并直接放入机器中之外,没有什么可以改变的,但是我想我会问,机缘巧合。 理想情况下,我正在寻找OpenBSD解决方案,但我知道还有其他问题/问题,因此将考虑使用任何解决方案作为答案。

2
md上的bcache或bcache上的md
bcache 允许一个或多个快速磁盘驱动器(例如,基于闪存的固态驱动器(SSD))充当一个或多个速度较慢的硬盘驱动器的缓存。 如果我理解正确, 可以分配一个SSD *来缓存多个后备HDD,然后可以使用mdadm 或RAID来对生成的缓存设备进行RAID。 可以将多个HDD RAID到单个后备md设备中,并分配SSD来缓存该硬盘。 我想知道哪种方法更明智。在我看来,使用一种或其他方法来增加RAID5 / 6可能会更简单,但我不确定是哪一种! 是否有充分的理由(例如增加后备存储或其他任何东西)来选择一种方法而不是另一种方法(对于包含VM后备文件的大型非根文件系统)? * “ SSD”是指某种冗余的SSD设备,例如两个物理SSD的RAID1

3
dd如何用于右移数据块?
考虑一个100MB的原始块设备作为简单示例。即204800个块,每个块512个字节,总计102760448个字节。 面临的挑战是转移前98MB(200704块),使其前面有2MB(4096个块)的间隙。要就地执行此操作,需要将任何内容都写入未读取的扇区。实现此目的的一种方法是引入缓冲区: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 期望mbuffer在将任何内容传递给写入器之前将存储4096个块,从而确保未写入任何内容到尚未读取的区域,并且写入器落后于读取器缓冲区大小。缓冲区应允许读取器和写入器在这些内存中尽可能快地操作。 但是,它似乎无法可靠地工作。我曾尝试使用真实的设备,但是它永远无法在它们上运行,而使用文件进行的实验只能在我的64位设备上运行,而不能在我的32位设备上运行。 首先,做一些准备: $ dd if=/dev/sdj2 count=200704 | md5sum 0f0727f6644dac7a6ec60ea98ffc6da9 $ dd if=/dev/sdj2 count=200704 of=testfile 这不起作用: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 -H | dd of=/dev/sdj2 …
10 dd  block-device 

1
找出特定设备是否为USB大容量存储
语境 我正在从现有的dd工厂映像中自动执行SD卡映像。SD卡始终通过外部USB卡读取器进行连接,因此在系统中显示为SCSI块设备/dev/sd*。 目前,我的命令语法为:SD卡块设备write-image DEVICE在哪里DEVICE,例如。/dev/sdd。 问题 我已经在进行基本检查DEVICE以验证它的格式,/dev/sd*但这还不够:我担心用户(不习惯Linux的生产人员)会犯一个错误,并指定另一个看似有效的设备,例如。/dev/sda。您会看到迫在眉睫的灾难,尤其是因为我的映像脚本需要root权限(请注意,请不要写映像本身,而是事后修改SD卡,包括根据SD卡的实际大小调整分区的大小)... 题 我想确认指定的设备实际上是一些USB大容量存储设备(或至少是可移动设备),以便保护系统磁盘免遭意外损坏。我怎样才能做到这一点? 我/proc在网上或网上都找不到任何相关内容,现在我很茫然。

1
某个设备文件背后的驱动程序是什么?
给定一个设备文件,例如/dev/sdb,可以确定它背后的驱动程序吗? 具体来说,我想确定存储设备正在使用什么驱动程序。fdisk -l列出2个设备:/dev/sda和/dev/sdb。一个是SATA硬盘驱动器,另一个是USB大容量存储设备-实际上是SD卡。 如何通过编程确定哪个是哪个? 我正在写一个软件,我想保护初学者免于淘汰其硬盘驱动器,同时允许他们淘汰其SD卡。

2
如何轻松找出是否以某种方式安装了块设备(或其一部分)
我想知道最简单的方法是确定(没有root特权)是否安装了块设备(例如sdb)或它的任何部分(以及它的哪一部分)。 检查/proc/mountssdb是不够的,因为sdbLVM可能会使用它的一个分区或其中一个分区。您可以检查,/sys/block/sdb/sdb*/holders/但是会得到dm-x必须解析为/dev/mapper名称的条目才能进行检查/proc/mounts。可能,但是如果有一个更简单的解决方案...(它不需要root特权)

3
每次安装USB闪存盘时,其名称都一样吗?
我有一个USB密钥,每天都会通过bash脚本将其用于保存数据。我设法为特定用户安装了它,以便能够使用以下命令在其中写入文件夹: mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop 该脚本可以根据需要运行和创建目录,并且非常完美。在某个时候,将拔出USB密钥并用新的(相同型号)替换。新的USB密钥仍会使用该名称/dev/sdc1还是会有所不同? 如果是不同的零件,如何将安装零件包括在脚本中以使其自动制成?

1
是否可以在Linux中更改zfs raidz池的分区的扇区大小?
我一直在通过稀疏文件的虚拟设备将Linux上的zfs raidz池迁移到新光盘。我在光盘上使用了分区,因为每个光盘的大小不同,均为1.9T。最后要添加的磁盘是4Tb磁盘,我将其与其他磁盘分区,并添加了1.9T分区以添加到池中。它使用的是GPT分区表。当我尝试用4T光盘上的1.9T分区替换最后一个文件时,得到以下内容 zpool replace -f zfs_raid /zfs_jbod/zfs_raid/zfs.2 /dev/sdd1 cannot replace /zfs_jbod/zfs_raid/zfs.2 with /dev/sdd1: devices have different sector alignment 我如何像其他分区一样将分区扇区大小更改为512,否则,是否有可能将其他池设备更改为4024?显然,逻辑扇区大小均为512 cat /sys/block/sdd/queue/hw_sector_size Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): …

4
我的/ tmp安装在哪里?
$ df /tmp Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 480589544 42607368 413546516 10% / $ ls /dev/root ls: cannot access /dev/root: No such file or directory 我想检查默认的Debian安装位置是否/tmp在RAM或磁盘上,但是现在完全感到困惑了。为什么将不存在的设备报告为文件系统类型?“安装在/”上是什么意思? 这是输出mount: /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=811520k,mode=755) tmpfs on …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.