Может ли файл подкачки находиться на диске, отличном от системного?

Как настроить swap-пространство на HDD объемом 2 ТБ в качестве раздела для подкачки, вместо использования swap-файла, на сервере с Ubuntu 22.06, оснащенном одним NVMe-диском под систему и одним HDD-диском?
  • 5 декабря 2023 г. 17:11
Ответы на вопрос 3
Да, файл подкачки может находиться на диске, отличном от системного диска. В операционных системах семейства Linux файл подкачки (swap) может быть как файлом на разделе файловой системы, так и целым разделом диска. Создание раздела для подкачки на отдельном HDD (в вашем случае 2 ТБ) для сервера с Ubuntu может быть осуществлено с помощью следующих шагов:

1. Определите устройство, на котором будет создан swap. Например, если ваш HDD определился в системе как `/dev/sdb`, то его можно увидеть с помощью команды `lsblk` или `fdisk -l`.

2. Создайте на диске раздел под подкачку. Для этого воспользуйтесь утилитой, такой как `cfdisk` или `fdisk`. Здесь приведен пример создания swap-раздела на диске `/dev/sdb`.

    ```bash
    sudo fdisk /dev/sdb
    ```

    В интерфейсе `fdisk`:

    - Выберите `n` для создания нового раздела.
    - Выберите тип раздела `primary` (`p`).
    - Введите номер раздела (например, 1 если это будет первый раздел).
    - Введите первый и последний секторы (можно использовать значения по умолчанию, чтобы использовать весь диск).
    - Выберите `t` для смены типа раздела и выберите код типа 82, который соответствует Linux swap.
    - Сохраните изменения и выйдите при помощи `w`.

3. Создайте swap-пространство на новом разделе, используя команду `mkswap`:

    ```bash
    sudo mkswap /dev/sdb1
    ```

4. Включите swap-пространство командой `swapon`:

    ```bash
    sudo swapon /dev/sdb1
    ```

5. Добавьте новое swap-пространство в файл `/etc/fstab`, чтобы оно автоматически активировалось при загрузке системы:

    ```bash
    echo '/dev/sdb1 none swap sw 0 0' | sudo tee -a /etc/fstab
    ```

6. Перезагрузите систему или активируйте swap с помощью `swapon`, чтобы убедиться, что все работает корректно.

    ```bash
    sudo swapon -a
    ```

Помните, что использование swap на HDD значительно медленнее, чем на NVMe-диске из-за различий в скорости доступа к данным у HDD и SSD. Также важно не выделять слишком большой раздел под swap. Обычно достаточно размера, равного или в два раза превышающего объем оперативной памяти системы, но точные рекомендации могут варьироваться в зависимости от нагрузки и конфигурации сервера. 

Проверьте состояние swap после настройки с помощью команды:

```bash
sudo swapon --show
```

или

```bash
free -h
```
своп настриивается как точка монтирования в /etc/fstab, если тебе автоматически после перезагрузкиUUID=xxx-xxx-xx-xxx none swap sw 0 0UUID=xxx тут способ указания раздела (или всего диска) для свопа, можно указать устройство /dev/sdXY или сразу файл (автоматически подключит loop девайс и будет туда свопаться)если тебе однократно, то подключать командойswapon устройствоp.s. на сколько я знаю, уже давно, своп может размещаться в т.ч. по сети (nfs например или nbd), точно помню был пример размещения свопа в vram gpu, есть где то поддержка сжатия данных на лету и тьма чего то еще
Конечно, а в чём сложность?
Похожие вопросы