2

У меня есть SSD и HDD. Некоторые каталоги, такие как /var , /srv и /tmp должны быть на жестком диске, а /boot , /usr и /lib на SSD. Но нужно ли создавать отдельный раздел для каждого каталога? Я хочу иметь 2 или около того раздела. По одному на каждый диск и раздайте каталоги по мере необходимости. Возможно ли это и как?

Я слышал о символических ссылках , mount --bind , mhddfs, но:

  • символические ссылки по-разному обрабатываются такими инструментами, как cp, поэтому я не уверен, безопасно ли иметь основные системные каталоги с символическими ссылками
  • Я понятия не имею, как я могу использовать mount --bind или mhddfs в fstab

3 ответа3

2

Если вы не хотите иметь много разделов и хотите гибко перемещать объекты, я рекомендую использовать LVM.

Создайте раздел /boot на SSD и еще 2 больших раздела: один на жестком диске, другой на SSD. Эти 2 раздела будут физическими томами (PV) для LVM. Добавьте их в группу томов (VG), затем создайте логический том (LV) для каждого каталога на нужном PV. Если позже вы обнаружите, что /var должен быть на SSD, а не на HDD, вы можете использовать pvmove для перемещения соответствующего LV с HDD на SSD.

Пример:

pvcreate /dev/disk/by-id/hdd-part1
pvcreate /dev/disk/by-id/sdd-part2 # part1 is /boot
vgcreate my_vg /dev/disk/by-id/hdd-part1 /dev/disk/by-id/sdd-part2
lvcreate -n root -L 6G my_vg /dev/disk/by-id/sdd-part2
lvcreate -n var -L 2G my_vg /dev/disk/by-id/hdd-part1
lvcreate -n srv -L 10G my_vg /dev/disk/by-id/hdd-part1
pvmove -n var /dev/disk/by-id/hdd-part2 /dev/disk/by-id/sdd-part2

Я хочу подчеркнуть, что pvmove также может перемещать только фрагменты PV, называемые физическими экстентами (PE). Размер PE по умолчанию равен 4 МБ, и его можно установить при создании VG.

1

Я никогда не использовал это, но я думаю, вы можете смонтировать каталог / на устройстве ssd. Затем создайте папку с именем / hdd После, создайте нужные папки, например / hdd / var / hdd / srv / hdd / tmp.

И используйте крепление связывания, чтобы обновить эти записи

mount --bind /hdd/var /var
mount --bind /hdd/tmp /tmp

Для этого просто создайте папки /boot, /usr, /lib. Нет необходимости в ремонте.

1

Бинты должны выполнять то, что вы пытаетесь сделать. Вы можете легко использовать bind mounts в fstab: запись bsta mount выглядит так:

/path/to/original /mount/point none bind 0 0

Просто обратите внимание, что для начала вам нужно что-то подключить к /, поэтому я бы порекомендовал монтировать ваш SSD в /, а затем привязывать монтирование различных каталогов с вашего жесткого диска, как вам удобно. Таким образом, fstab, как (предполагая ext4 разделы, изменить при необходимости)

### /etc/fstab ###

# Mount SSD to /
/dev/disk/by-uuid/your-ssd-partition-uuid / ext4 0 1

# Mount HDD somewhere (in this case /mnt/hdd)
/dev/disk/by-uuid/your-hdd-partition-uuid /mnt/hdd ext4 0 2

# Bind mounts
/mnt/hdd/var /var none bind 0 0
/mnt/hdd/srv /srv none bind 0 0
/mnt/hdd/tmp /tmp none bind 0 0

У вас также может быть выделенный "корневой" каталог для /, скажем, на вашем ssd, это сделает fstab похожим на

### /etc/fstab ###

# Mount SSD somewhere
/dev/disk/by-uuid/your-ssd-partition-uuid /mnt/ssd ext4 0 1

# Mount HDD somewhere (in this case /mnt/hdd)
/dev/disk/by-uuid/your-hdd-partition-uuid /mnt/hdd ext4 0 2

# Mount /
/mnt/ssd/root / none bind 0 0

# Other Bind mounts
/mnt/hdd/var /var none bind 0 0
/mnt/hdd/srv /srv none bind 0 0
/mnt/hdd/tmp /tmp none bind 0 0
/mnt/ssd/lib /lib none bind 0 0
/mnt/ssd/usr /usr none bind 0 0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .