几周前,我遇到了一些以前从未见过的情况:安装到没有分区的存储设备上的文件系统(我相信是 ext3)。在本质上/dev/sdb
曾是整个文件系统。我知道许多文件系统可以扩展到空白空间,因此这样做可以在不处理 LVM 或其他类型的卷管理器的情况下进行扩展,但是以这种方式设置存储还有其他优点吗?
我看到的具体情况是作为数字处理服务器的临时数据卷,引导卷和根卷完全是不同存储设备上的传统分区。 -
答案1
优点:您不会在分区表上浪费一个磁盘扇区。 (耶。)
优点:该磁盘可以在不支持 PC 式分区的操作系统中使用。 (就像你要使用一个一样。)
缺点:这是不寻常的,可能会让共同系统管理员感到困惑。 (看?)
缺点:如果您安装另一个操作系统,它可能会认为该磁盘包含垃圾,并且很容易通过选择错误的磁盘来意外覆盖它,而操作系统通常会保留它们不理解的类型的分区。
无关紧要:如果直接在磁盘上扩展文件系统并不比在分区中更容易,反之亦然。 (使用 LVM 会让事情变得更容易。)
结论:它有效,但不是一个好主意。
答案2
我看到了在虚拟环境中完成此操作的真正好处。由于我们的 VMDK 存储在 NAS 上,因此我们可以动态扩展它们。
如果我们使用分区,要么需要使用 LVM(以及与之相关的开销)并将分区链接在一起,要么需要关闭主机(或文件系统,如果不使用)以使用 gparted 之类的东西。
但是,如果您使用整个磁盘而不是分区,则可以强制重新扫描 SCSI 磁盘并使用 resize2fs 在文件系统在线(并且正在使用!)时增大文件系统。
答案3
不确定这将如何应用于 Linux,但对于本机 ZFS,建议在整个磁盘而不是分区上创建池的一个原因是在前一种情况下可以启用磁盘写入缓存。
这里还提到了其他几个原因:
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#Storage_Pools
结论:它有效,并且可能是一个好主意,具体取决于文件系统。
答案4
尚未列出的答案是,如果您不创建分区,则不必等待内核检测到它,这可能只有在重新启动后才能检测到。
一个用例可能是您添加到节点并希望在首次启动时初始化的 EC2 EBS 卷。
如果您的初始化过程创建了一个分区,则可能会需要重新启动才能让内核看到新创建的分区。您通常会看到类似这样的消息:
错误:通知内核有关分区 /dev/xvde1 修改的错误 - 设备或资源繁忙。这意味着 Linux 在您重新启动之前不会知道您对 /dev/xvde1 所做的任何更改 - 因此您不应在重新启动之前安装它或以任何方式使用它。
在这种情况下,您的初始化过程必须重新启动,然后继续将文件系统添加到新创建的分区。
如果您知道只需要一个分区,您不妨跳过它,这样就不会冒需要重新启动的风险。