![Ubuntu 服务器云映像的最佳实践磁盘分区?](https://linux22.com/image/753134/Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BA%91%E6%98%A0%E5%83%8F%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E7%A3%81%E7%9B%98%E5%88%86%E5%8C%BA%EF%BC%9F.png)
/
我在很多地方都看到过,在服务器的单独分区上安装/home
和是一种很好的做法/var
,这样可以降低不必要的应用程序/操作填满磁盘的风险。
不过,在我创建过实例的所有云提供商(AWS、OVH 和 GCP)中,Ubuntu 的默认可用映像通常带有单个/
分区。
上面提到的“良好做法”是否与云无关,还是只是被忽略了?由于我登录服务器时显然已安装根分区,我有没有办法缩小它并重新分配空白空间?
答案1
我们为每个卷使用一个分区(除了包含启动和交换的第一个卷)。这有很多优点(当然,这取决于应用程序)。
根据我的经验,如果您的应用程序有一个大型数据库 + 许多文件,那么将数据文件系统与根文件系统分开是一种很好的做法。最明显的原因是扩大或缩小数据分区要容易得多,但更改启动分区要复杂得多。在大多数情况下,您需要卸载分区才能调整其大小。
您无需重新启动/进入维护模式服务器即可调整大小/修改/添加/删除卷/分区。
另一个原因是优化成本,因此通过这种配置可以实现以不同的成本获得不同的产量。
关于缩小根分区,我通常会选择适合我的根文件系统需求的磁盘大小配置。(我使用 Debian,与 Ubuntu 非常相似,我使用 15 GB 根分区)。我将 /var/log 链接到数据分区,这通常是导致空间问题的原因。这样,根分区的大小基本保持不变。只需确保正在运行的应用程序清理 /tmp 文件即可。
您还拥有许多其他优势:
1) 您可以创建/构建新服务器(根分区),然后将数据从一台服务器移动到另一台服务器。更新操作系统版本的简便方法(风险更小,停机时间更短)
2) 如果将应用程序与数据分开,则可以为应用程序设置另一个卷,从而提供额外的灵活性。
3)如果您的 VM 提供商有不同类型的磁盘(不同的速度、不同的价格),您可以为 DB 选择快速卷,为可执行文件(通常运行一次)和很少使用的数据选择较慢的卷。
等等)我相信还有许多其他原因需要分离卷/文件系统。这里仅列举几个。
答案2
在 Linux 中对磁盘进行分区是一个颇具争议的话题。我认为,在现代系统中,对 /var 和 /home 等内容进行分区并不那么重要,因为我们处理的磁盘更大,或者机器更瞬时。
在任何供人们交互使用的系统上,将 /home 与操作系统的其余部分分开分区是一个好主意,原因有二:
- 您可能需要重新安装操作系统,并让人们保留自己的主文件夹/文件
- 人们更有可能通过创建或下载文件到自己的主文件夹而意外地填满硬盘。
大多数云提供商都会根据第二种情况定制其默认设置,即机器不会长时间停留。如果您在云平台上运行网站,您通常会希望使用负载平衡器和自动缩放组,其中服务器会根据使用情况进行扩展/缩小,并且当您出现错误时,您只需将其删除并启动新的服务器即可。
另一部分是,云提供商通常允许多个附加卷。如果您希望将服务器视为更永久的,建议的做法是将额外的卷附加到实例,例如 /srv/www、/home 或持久数据所在的任何位置。这样,当您想要升级操作系统时,您可以将网站重新附加到新服务器。