swap

Re: swap

Сообщение Olej » 17 апр 2017, 23:44

Olej писал(а):

2. Наверное все знают другом способе - использовании для swap файла в файловой системе. Объявлено, что в Ubuntu последних версий этот способ используется по умолчанию.

Создание и использование swapfile хорошо известно и описано. Общая схема выглядит так:
1. Создать сам файл:
Код: выделить все
[olej@dell 17]$ sudo dd if=/dev/zero of=/swapfile bs=1M count=500
[sudo] пароль для olej:
500+0 записей получено
500+0 записей отправлено
 скопировано 524288000 байт (524 MB), 0,239128 c, 2,2 GB/c

[olej@dell 17]$ ls -l /swapfile
-rw-r--r-- 1 root root 524288000 апр 17 20:38 /swapfile

2. Создать структуру свап-файла (разметка, форматирование?):
Код: выделить все
[olej@dell 17]$ sudo mkswap /swapfile
mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
без метки, UUID=ab4a48f4-1fdd-4486-850c-c8f4817cc747

3. Подключить его как swap:
Код: выделить все
[olej@dell 17]$ sudo swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
swapon: /swapfile: swapon failed: Недопустимый аргумент

4. Первую ошибку легко устранить:
Код: выделить все
[olej@dell 17]$ sudo chmod 0600 /swapfile
[olej@dell 17]$ ls -ln /swapfile
-rw------- 1 0 0 524288000 апр 17 20:40 /swapfile

... повторяем подключение swap:
Код: выделить все
[olej@dell 17]$ sudo swapon /swapfile
swapon: /swapfile: swapon failed: Недопустимый аргумент

Вот так! Облом... :cry:
Ответ находим:
Код: выделить все
[olej@dell ~]$ man swapon
...
       swapon may not work correctly when using a swap file with some versions of btrfs.  This is due to btrfs being a copy-
       on-write filesystem: the file location may not be static and corruption can result.  Btrfs actively disallows the use
       of swap files on its filesystems by refusing to map the file.
...
[olej@dell 17]$ mount | grep /dev/sd
/dev/sda5 on / type btrfs (rw,relatime,space_cache,subvolid=257,subvol=/root)
/dev/sda3 on /boot type ext4 (rw,relatime,data=ordered)

На btrfs создать swap нельзя! :?
Olej
 
Стаж: 47 лет 10 месяцев 21 день

Re: swap

Спонсор

Спонсор
 

Re: swap

Сообщение Olej » 17 апр 2017, 23:45

Olej писал(а):

На btrfs создать swap нельзя! :-o

А теперь то же самое, но на другой системе с традиционной ext4:
Код: выделить все
olej@nvidia ~ $ mount | grep sd
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda2 on /home type ext4 (rw,relatime,data=ordered)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

olej@nvidia ~ $ swapon -s
Filename            Type      Size   Used   Priority
/dev/sda3                                 partition   4606972   0   -1

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      472432     2633704       25404      939704     3300720
Подкачка:     4606972           0     4606972

Повторяем ту же последовательность:
Код: выделить все
olej@nvidia ~ $ sudo dd if=/dev/zero of=/swapfile bs=1M count=500
[sudo] пароль для olej:
500+0 записей получено
500+0 записей отправлено
524288000 байт (524 MB, 500 MiB) скопирован, 0,60167 s, 871 MB/s

olej@nvidia ~ $ sudo mkswap /swapfile
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
без метки, UUID=664baecc-ec29-42de-a0d1-1e89499c09da

olej@nvidia ~ $ sudo chmod 0600 /swapfile

olej@nvidia ~ $ ls -l /swapfile
-rw------- 1 root root 524288000 Апр 17 21:45 /swapfile

Подключаем:
Код: выделить все
olej@nvidia ~ $ sudo swapon -va /swapfile
swapon /swapfile
swapon: /swapfile: found swap signature: version 1d, page-size 4, same byte order
swapon: /swapfile: pagesize=4096, swapsize=524288000, devsize=524288000

olej@nvidia ~ $ swapon -s
Filename            Type      Size   Used   Priority
/dev/sda3                                 partition   4606972   0   -1
/swapfile                                 file       511996   0   -2

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      472668     2633388       25404      939784     3300448
Подкачка:     5118968           0     5118968

Теперь используются одновременно 2 swap ... пространства.
А теперь старый раздел убираем из swap:
Код: выделить все
olej@nvidia ~ $ sudo swapoff /dev/sda3

olej@nvidia ~ $ swapon -s
Filename            Type      Size   Used   Priority
/swapfile                                 file       511996   0   -1

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      474000     2631852       25404      939988     3299188
Подкачка:      511996           0      511996
Olej
 
Стаж: 47 лет 10 месяцев 21 день

Пред.

Вернуться в Ядро, модули и конфигурация

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1