我正在使用 OpenStack Cloud 并在 RHEL 7 上使用 LVM 来管理卷。根据我的用例,我应该能够将这些卷分离和附加到不同的实例。
在更新 fstab 时,我defaults,nofail
现在已经使用了,但我不确定我到底应该使用什么。我知道这些选项:
rw, nofail, noatime, discard, defaults
但我不知道如何使用它们。我的用例的理想配置应该是什么?
答案1
正如@ilkkachu 所说,如果你看一下mount(8)
手册页,您所有的疑虑都应该消失。引用手册页:
-w, --rw, --read-write
Mount the filesystem read/write. This is the default. A synonym is -o rw.
方法:根本不需要,因为这rw
是默认设置,并且它是defaults
选项的一部分
nofail Do not report errors for this device if it does not exist.
方法:如果启动后使用fstab挂载设备未启用,则不会报错。您需要知道如果未安装磁盘,是否可以忽略该磁盘。对 USB 驱动程序非常有用,但我认为在服务器上使用它没有意义......
noatime
Do not update inode access times on this filesystem (e.g., for faster access on the
news spool to speed up news servers).
方法:无读操作是文件系统上的“纯”读操作。即使您只是cat file
举例,一点点写入操作也会更新inode
该文件的上次访问时间。它在某些情况下非常有用(例如缓存服务器),但如果用于 Dropbox 等同步技术,则可能会很危险。如果没有设置或忽略 noatime,我无法在这里判断什么对您来说是最好的......
discard/nodiscard
Controls whether ext4 should issue discard/TRIM commands to the underlying block device
when blocks are freed.This is useful for SSD devices and sparse/thinly
-provisioned LUNs, but it is off by default until sufficient testing has been done.
方法:SSD 的 TRIM 功能。花点时间阅读这个人的文章,并探测您的 SSD 是否支持此功能(几乎所有现代 SSD 都支持它)。hdparm -I /dev/sdx | grep "TRIM supported"
会告诉您您的 SSD 是否支持修剪。
就今天而言,您可以通过以下方式实现更好的性能和数据健康状况:定期修剪而不是不断修剪你的fstab
.甚至还有一个内核设备黑名单用于连续修剪,因为它可能因非排队操作而导致数据损坏。
defaults
Use default options: rw, suid, dev, exec, auto, nouser, and async.
长话短说:关于你的问题,rw
可以删除(defaults
已经暗示了rw),nofail
取决于你,noatime
取决于你,同样的方式discard
取决于你的硬件功能。
答案2
我发现信息说这非常重要禁用丢弃安装选项Linux 下的 SSD(-o nodiscard)。这是引用和链接:
关联:
引自第6页:
“文件系统建议
重要提示:不要丢弃文件系统使用中的块。
在创建 Linux 文件系统时,请务必关闭丢弃选项。您希望允许 SSD 使用 SSD 控制器中更高级、更一致的方法管理 NVM(非易失性存储器)和主机之间的块及其活动。
核心文件系统:
• ext4 – 默认的扩展选项不会在文件系统创建时丢弃块,保留它,并且不要像某些信息会告诉您的那样添加“丢弃”扩展选项。
• xfs – 对于 mkfs.xfs,添加 –K 选项,以便您不会丢弃块。
如果您要使用软件 RAID,建议使用 128k 的块大小作为起点,具体取决于您要运行的工作负载。你必须时刻测试你的工作量。”
正如您所看到的,制造商本身(英特尔)如此强烈地表达了这一点,以至于他们在文本中重复了五次,其中四次是明确的,一次是通过专业人士理解的逻辑重复的。这是制造商非常强调的。此外,这款 SSD 也毫不逊色:它是几年前售价 1,200 美元的英特尔 SSD。
我不知道“修剪”选项与此有什么关系;我正在传递文件中的信息。该文档的日期为 2015 年 3 月,修订版 2.0,并更新为 Linux 内核 3.19(该文档在第 2 页列出了该版本)。
答案3
defaults,
(或,defaults
) 永远不需要。
我不知道为什么例子中man fstab
使用它:-(。
使用的原因defaults
是如果您不需要提供任何选项。你需要一些如果您想为下一列提供值,则要放入选项列中的单词。