在一次拙劣的尝试将我的根分区从一个磁盘移动到另一个磁盘时,我执行了以下操作:
初始化物理卷
$ pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
Run Code Online (Sandbox Code Playgroud)扩展卷组以包含这个新的物理磁盘
$ vgextend myvg /dev/sdb3
Volume group "myvg" successfully extended
Run Code Online (Sandbox Code Playgroud)扩展了逻辑卷(我认为这就是我总结的地方:我认为我应该将 pvmove 的东西转移到该组中的新 pv - 有人可以确认吗?)
$ lvextend /dev/mapper/myvg-root /dev/sdb3
Run Code Online (Sandbox Code Playgroud)我现在想撤消 lvextend,然后继续执行将旧物理卷的内容移至新物理卷的原始计划。我可以减少逻辑卷(我还没有使用像 resizefs 这样的东西触及位于 /dev/mapper/myvg-root 中的 ext4 分区)而不用担心损坏 ext4 文件系统吗?如果是这样,我如何告诉它减少正确的数量?
$ lvreduce --by-exactly-the-amount-occupied-by-PV /ev/sdb3 /dev/mapper/myvg-root
Run Code Online (Sandbox Code Playgroud) 我有 4 个外部驱动器通过 USB 连接到我的 Dell Precision 490 工作站。
它们通过 uuid 位于 /etc/fstab 中,并格式化为 UUID。
UUID=04c37bff-b93e-440e-acd0-3d984ddb2ec3 /mnt/drive0 ext4 defaults,nobootwait 0 2
UUID=210765f4-30e5-4863-a40b-aa1fffefe5ca /mnt/drive1 ext4 defaults,nobootwait 0 2
UUID=b981c5e7-249e-4430-9887-96ca674e0733 /mnt/drive2 ext4 defaults,nobootwait 0 2
UUID=22c8a274-3cf9-403f-9558-feb531e407c7 /mnt/drive3 ext4 defaults,nobootwait 0 2
Run Code Online (Sandbox Code Playgroud)
我在里面放了三个驱动器,但只有一个自动挂载(drive3,drive2仍然是外部连接的)
$ mount | grep /dev/sd
/dev/sdc1 on /boot type ext2 (rw)
/dev/sdb1 on /mnt/drive3 type ext4 (rw)
/dev/sdf1 on /mnt/drive2 type ext4 (rw)
Run Code Online (Sandbox Code Playgroud)
但他们都出现了:
$ sudo fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't …Run Code Online (Sandbox Code Playgroud) 我要将文件存储在我服务器的一个文件夹中。文件量将超过200万。每个文件的大小范围在5MB-100MB之间。
什么样的文件系统可以处理这么大的数据量?
我知道 XFS 可以处理非常大的单个文件,它可以处理大量文件吗?
想象一下物理卷被调整大小:
pvresize /dev/sda2
Run Code Online (Sandbox Code Playgroud)
并且逻辑卷的大小调整为:
lvresize -l +100%FREE system/home
Run Code Online (Sandbox Code Playgroud)
但是这个命令没有完成:
resize2fs /dev/mapper/system-home
Run Code Online (Sandbox Code Playgroud)
由于忘记了最后一个命令,因此有未使用的空间。
如何计算未使用的字节?
背景:我想编写一个检查脚本来检查是否在服务器上忘记了文件系统的大小调整。
顺便说一句:我不相信 shell 脚本。
有没有工具或命令来实现它?我在这里搜索了一些我没有找到答案。那可能吗?
我必须提到我要转换的 ext4 驱动器有数据,所以它必须只转换它而不是格式化它
我负责 44 个节点的 Hadoop 集群。我们有 1.5TB WD Green Drives(非常未知)负载循环计数问题。
这些磁盘工作正常,但随着它们变老,它们显示出越来越多的坏块。重写这些坏块有一段时间了,但它们会重新出现在不同的地方。
由于这些磁盘中的大多数仅用于 Hadoop 数据节点,我们没有预算来替换它们,因此我正在寻找一种策略
不要疯狂维护集群,磁盘错误和相关的文件系统问题几乎每天都会出现。我目前的流程是:
dmesg输出定位坏块并smartctl使用hdparm --write-sector.fsck -f -y在磁盘上运行并重新安装它。保持系统稳定。
目前我已将mount选项更改为:
erros=continue,noatime 但由于日记错误,我得到了 occosial 只读重新安装。 然后我尝试禁用日志:
tune2fs -O ^has_journal 这避免了只读重新挂载但似乎损坏了文件系统(这是有道理的,没有日志) 现在我正在考虑切换到
tune2fs -o journal_data_writeback并mount与data=writeback,nobh,barrier=0 但我不确定这是否会重新引入只读重新安装。
所以,我想避免只读重新挂载,想要维护稳定的文件系统元数据但不关心数据中的错误(Hadoop 会处理这个问题)。速度也不应该受到影响。
我有哪些选择?我知道这对任何系统管理员来说都是一个噩梦。操作系统分区安装了完整的日志,我不打算在生产数据上进行测试。这严格适用于 Hadoop 数据节点/任务跟踪器硬盘。
fedora 8 是否支持 ext4 文件系统?如果是,那么我如何启用它?
我看不到 ext4 的格式命令。我只能看到 mkfs.ext3 和 mkfs.ext2。
我有一个文件系统错误/错误。我的专用服务器无法启动。OVH 以救援模式启动了我的专用服务器,并且:
root@rescue:~# parted /dev/sda 'print'
Model: ATA SAMSUNG MZ7LM240 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 240GB 240GB primary boot
2 240GB 240GB 536MB primary linux-swap(v1)
Run Code Online (Sandbox Code Playgroud)
所以问题是,在 sda 和 sdb 中没有文件系统。
所有数据都非常非常重要,所以我必须保存它们。请帮助我,如何在磁盘中创建文件系统并恢复所有内容?
我尝试了 testdisk 命令,但无法恢复文件系统。
当我尝试挂载时,我收到了这条消息:
root@rescue:/mnt# mount /dev/sdb1 /mnt/
mount: unknown filesystem type 'linux_raid_member'
root@rescue:/mnt# mount /dev/sda1 /mnt/
mount: unknown filesystem type 'linux_raid_member'
Run Code Online (Sandbox Code Playgroud)
而 fdisk 写的是:
root@rescue:/mnt# fdisk -l
Disk /dev/sda: 223.6 …Run Code Online (Sandbox Code Playgroud) 我有一个旧盒子(CentOS 5),它被格式化为 lvm 但现在我想将它转换为 ext3/4 文件系统而不会丢失数据。我有一些可以使用的空磁盘,那么有没有简单的方法来做到这一点?