我有一台带有 48G RAM 的全新服务器,我将把它用作数据库服务器。我不希望磁盘读取出现问题,但我绝对希望针对写入密集型负载模式进行优化。
操作系统是 RHEL 5.6,FS 是 ext3,我已经在 /etc/fstab 中添加了“noatime”和“data=writeback”,后一个选项有助于大大减少 LA。我的下一个目标是尽可能优化 pdflush 过程。我尝试应用这里提到的调整,但无济于事。可能这些信息已经过时了。
我还有哪些选择?我应该继续试验 pdflush 还是保持原样更好?我倾向于降低dirty_ratio和dirty_background_ratiosysctl 值以增加 I/O 平滑度,但这些值似乎与性能无关,压力测试下 Munin 中的负载模式基本相同。
我还应该尝试不同的 I/O 调度程序吗?在写入密集型设置中拥有大量 RAM 是否能让我受益?我知道磁盘 I/O 速度和延迟与 RAM 无关,但我的目标不是神奇地更快地写入磁盘,而是提高系统稳定性并实现某种优雅的降级。
假设我有良好的备份,并且可以接受进一步的数据一致性权衡,例如“data=writeback”。
谢谢你。
我有 6 个驱动器(每个 1.5T,所有相同的型号和固件版本)是 RAID5 阵列的一部分。RAID5 构成一个 LVM 卷组和一个逻辑组。后者仅包含一个 ext3 分区。我最近跑了:
e2fsck -f /dev/vg03/lv01 && resize2fs -M /dev/vg03/lv01
Run Code Online (Sandbox Code Playgroud)
退出没有错误。
现在,当我尝试时,mount /dev/vg03/lv01我得到:
EXT3-fs error (device dm-0): ext3_check_descriptors: Block bitmap for group 30533 not in group (block 1000532368)!
EXT3-fs: group descriptors corrupted!
Run Code Online (Sandbox Code Playgroud)
我如何摆脱这种困境?这是我目前可以给你的所有信息:
fdisk -l /dev/sd[cdefgh]显示(正确)它们是“ Linux raid autodetect”
但 fdisk 现在显示:
fdisk -l /dev/md0
Run Code Online (Sandbox Code Playgroud)
磁盘 /dev/md0:7501.5 GB,7501495664640 字节
...
磁盘标识符:0x00000000
磁盘 /dev/md0 不包含有效的分区表
(而不是 LVM 类型分区)
fdisk -l /dev/vg03/lv01
Run Code Online (Sandbox Code Playgroud)
磁盘 /dev/vg03/lv01:7501.5 GB,7501491732480 字节
...
磁盘标识符:0x00000000
磁盘 /dev/vg03/lv01 …
在启动 CentOS 6 时,我一直收到“Superblock last mount time is in the future”错误。我已经看到其他问题询问如何解决这个错误,但我确切地知道它为什么会发生:我们定期开发/测试虚拟机将它们的日期设置为远离当前的时间,并重新安装所有文件系统。
我想知道的是:如何在centOS中禁用超级块挂载时间的所有一致性检查?
我已经尝试tune2fs -i 0 <device>并设置buggy_init_scripts=1了/etc/e2fsck.conf,但都没有奏效;问题仍然存在。
我有一台服务器,每晚都会对系统进行增量备份。现在在星期六,有一个完整的备份。但是在完整备份完成后,一个脚本会启动,删除增量。
现在,脚本有时会中断,这是因为每个增量文件都有大约 10GB 的文件,有时脚本需要的时间太长。
现在有人可以向我解释,或者指出资源的方向,这就解释了为什么 ext3 与 NTFS 相比,删除文件的速度如此之慢?
我知道这些是 2 个完全不同的文件系统,但我真的很感兴趣为什么删除有这么大的差异?
我的一台服务器出现某种驱动器故障,导致操作系统(CentOS 5)崩溃并停止工作(它拒绝启动)。
因此,我们放置了另一个具有工作操作系统的驱动器,然后我们尝试在旧驱动器中安装分区。
大多数分区都安装得很好,除了一个:/var我的 MySQL 表所在的分区。
当我尝试安装那个时,我看到以下错误dmesg:
sd 0:0:1:0:未处理的检测代码
sd 0:0:1:0:SCSI 错误:返回代码 = 0x08100002
结果:hostbyte=invalid driverbyte=DRIVER_SENSE,SUGGEST_OK
sdb:当前:sense key:中错误
添加。意义:未恢复的读取错误信息 fld=0x4a47e JBD
:无法读取偏移量 9863 处的块JBD
:恢复失败
EXT3-fs:错误加载日志。
有没有办法恢复那个分区中的数据?
编辑:
根据要求,输出tune2fs -l /dev/sdb2为:
tune2fs 1.39 (29-May-2006)
Filesystem volume name: /var1
Last mounted on: <not available>
Filesystem UUID: d84f5181-24f3-40ce-9eaa-601ae5ae33bd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options: user_xattr acl
Filesystem state: clean …Run Code Online (Sandbox Code Playgroud) 我想在运行 10.5 的 mac 上挂载一个 ext2/3 文件系统。
最近我们在运行嵌入式 Linux 系统的 ext3 格式的闪存卡上遇到了一个问题(坏块)。启动时,启动了根文件系统检查,但它似乎挂起,因为它比平时花费的时间要长得多。后来我将卡插入另一台 PC 并检测到坏块。我现在想知道如果我等待的时间足够长,初始根文件系统检查是否也会发现修复的块。为了找到它,我检查了 tune2fs 和 e2fsck 手册页,但找不到我的问题的答案:
我可以影响使用这些自动根文件系统检查执行的检查/修复吗?如果是,我该如何配置它?
如果无法配置:究竟检查或修复了什么,默认设置是什么,自动检查使用哪些标志?
我昨天收到一封电子邮件,说我们的一个用户试图为心跳/集群包腾出空间,该包需要自己的分区作为投票磁盘。为此,他尝试减小根分区的逻辑卷的大小,然后为此创建一个新的逻辑卷。但是,他忘记先调整文件系统的大小(或在命令中包含 -r 开关)。他还忘记通过从救援 CD 运行此过程来卸载根分区。系统现在拒绝引导到操作系统,并出现以下错误:
超级块或分区表可能已损坏!意外的不一致;手动运行 fsck。
系统将用户放入单用户模式。
是否有可能拯救文件系统,或者它是否被软管?它运行的ext3。
我正在尝试在 Debian 机器上启用 xattrs 和 acls。我已经(重新)使用 user_xattr 和 acl 安装了有问题的分区。(/dev/md3 是有问题的分区)
root@fs01:/# mount | grep /dev/md
/dev/md0 on / type ext3 (rw,noatime,nodiratime,barrier=1,user_xattr,acl)
/dev/md3 on /DataVolume type ext4 (rw,noatime,nodiratime,acl,user_xattr)
Run Code Online (Sandbox Code Playgroud)
并且安装了 ACL 工具。
root@fs01:/# dpkg-query -W -f='${Status} ${Version}\n' acl
install ok installed 2.2.49-4
root@fs01:/# dpkg-query -W -f='${Status} ${Version}\n' libacl1
install ok installed 2.2.49-4
Run Code Online (Sandbox Code Playgroud)
Xattrs 开箱即用;ACL 没有。Getfacl 可以正常工作:
root@fs01:/# getfacl /DataVolume/hi
# file: /DataVolume/hi
# owner: root
# group: root
user::rw-
group::rw-
other::rw-
Run Code Online (Sandbox Code Playgroud)
因为它只返回本机 *nix 权限;没有任何 ACL,因为我无法设置它们:
root@fs01:/# setfacl -m u:root:rwx /DataVolume/hi
setfacl: …Run Code Online (Sandbox Code Playgroud)