我如何将 /tmp、/var、/opt 和 /usr/local 放入 /data 分区而不是 / 分区?

我如何将 /tmp、/var、/opt 和 /usr/local 放入 /data 分区而不是 / 分区?

我想要对具有 4 个 RAID VD 的 CentOS 6.5 服务器进行分区:

  • sdb-102398(100GB)
  • sdc-2185727(2TB)
  • sdd - 11440639 (11TB)
  • sde-11440639(11TB)

这样我就可以将大部分磁盘空间作为单个分区(/数据)。我希望该大单个分区包含/tmp/var/选择, 和/usr/本地。 我想要/分区以包含操作系统的其余部分。目标是让/数据分区存储易失性数据(/tmp/var等)以及用户数据和应用程序(/选择/usr/本地/家等)作为符号链接(例如,/tmp -> /data/tmp)或绑定挂载(例如,在 /etc/fstab 中:/data/tmp /tmp none bind 0 0)。我考虑过分区,例如:分割

安装期间默认的 CentOS 分区始终包括/tmp在里面/文件系统。 请注意: 我不想/tmp/var等作为单独的文件系统。 考虑到我的 RAID 配置和磁盘大小,我假设 /data 分区需要是LVM xfs分割吧?

有人能告诉我如何做到这一点吗?我尝试以单用户身份启动并进行上述绑定挂载,但重新启动失败,并出现查看问题/var。也许符号链接方法可行,但此时我希望得到一些专家的建议!

答案1

根据您的评论,我建议:

使用硬件 RAID 控制器为操作系统创建镜像 (RAID 1) 卷。此卷应在 BIOS 设置中指定为启动驱动器。对于许多 RAID 控制器/驱动程序,此卷将出现在/dev/sda您的 CentOS 系统中。

如果剩余的驱动器也连接到您的 RAID 控制器,您可以使用它创建一个 JBOD 卷(无冗余,并且 1 个驱动器损坏将破坏所有数据),它将显示为/dev/sdb。否则,其他驱动器只会在 CentOS 中显示为单独的驱动器。这些将是/dev/sdb /dev/sdc等。

由于您希望将最小的磁盘空间分配给操作系统,并将其他所有内容分配给数据卷,因此我将按如下方式对 /dev/sda 进行分区

/dev/sda 
    sda1 - 250 MB - ext3 - /boot  (I still find a separate boot partition useful)
    sda2 - 2-5 GB - ext4 - /      (this may also be a LVM physical volume for vg_root VG)
    sda3 - ???    - swap - (when using LVM merge with the vg_root Volume Group)     
    sda4 - all remaining space - physical volume for a vg_data Volume Group
/dev/sdb
    sdb1 - all space - physical volume for a vg_data Volume Group
/dev/sdc
    sdc1 - all space - physical volume for a vg_data Volume Group

vg_root 
   lv_root - 2-5 GB - ext4 - /
   lv_swap - ??? <swap>
vg_data
   lv_data - 20 TB? - ext4 - /data

请注意,正如您所指定的,当只有一个组件磁盘损坏时,/data 也会迅速损坏。

这里的技巧是将启动磁盘的剩余空间也分配给您的数据卷组,从而为您提供最大的空间。

现在,如果您的应用程序和用户不遵守$TEMPDIR设置只需移动/tmp/data/tmp并创建符号链接即可ln -s /data/tmp /tmp。对于您要重新定位的其他任何内容,方法也相同。

最好在 kickstart 脚本的安装后部分或完成安装后的单用户模式下执行此操作。

注意:我认为将 /var/tmp 移动到 /data/tmp 也有意义,但不要将整个 /var 移动到那里。根据设计,/data 是最不可靠的存储,并且您打算允许用户和应用程序完全填满该空间...

相关内容