CentOS 7에서는 스왑 공간을 활성화할 수 없습니다.

CentOS 7에서는 스왑 공간을 활성화할 수 없습니다.

그래서 저는 오픈 소스 티켓 요청 시스템인 OTRS를 설치하기 위한 튜토리얼을 따르고 있습니다. 따라서 설치하려면 4GB 스왑 공간이 필요합니다. 이것은 내가 사용하는 명령입니다:

[root@ip-10-0-7-41 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G   14G   37G  27% /
devtmpfs        478M     0  478M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  484M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
[root@ip-10-0-7-41 ~]# fallocate -l 4G /myswap
[root@ip-10-0-7-41 ~]# ls -lh /myswap
-rw-r--r--. 1 root root 4.0G Jul  8 08:44 /myswap
[root@ip-10-0-7-41 ~]# chmod 600 /myswap
[root@ip-10-0-7-41 ~]# mkswap /myswap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=3656082a-148d-4604-96fb-5b4604fa5b2e
[root@ip-10-0-7-41 ~]# swapon /myswap
swapon: /myswap: swapon failed: Invalid argument

여기에서 확인할 수 있습니다. 잘못된 매개변수 오류입니다. 나는 성공하지 못한 채 여러 번 시도했습니다. 누군가 이 오류를 해결하는 방법을 알려주십시오. (AWS 인스턴스 EC2에서 CentOS 7을 실행하고 있습니다)

[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /

답변1

문제 는 할당을 빠르고 효율적으로 하기 위해 fallocate(1)파일 시스템을 사용한다는 것이고 ioctls, 단점은 물리적으로 공간을 할당하지 않지만 swapon(2)시스템 호출에는 실제 공간이 필요하다는 것입니다. 인용하다:https://bugzilla.redhat.com/show_bug.cgi?id=1129205

이전에 내 상자에 이런 문제가 있었던 적이 있습니다. 그래서 사용하는 대신 링크의 제안에 따라 fallocate사용했습니다 .dd

sudo dd if=/dev/zero of=/myswap count=4096 bs=1MiB

그리고 계속해서 chmod, mkswap& swapon명령을 사용하세요. 빙고! 효율적인.

답변2

DigitalOcean의 Droplet에서 작동하려면 아래 단계를 따르세요. 나는 그것을 테스트했습니다. 필요에 따라 금액을 변경하세요 4096

yum install nano -y

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

sudo nano /etc/fstab

다음 줄을 추가하세요.

/swapfile   swap    swap    sw  0   0

이 명령을 실행하세요

sudo sysctl vm.swappiness=10

sudo nano /etc/sysctl.conf

이 줄을 추가하세요

vm.swappiness = 10
vm.vfs_cache_pressure = 50

스왑 크기 확인

swapon --summary
free -h

답변3

제 경우에는 커널 로그에 오류가 있었습니다:

BTRFS warning (device sdd1): swapfile must not be copy-on-write

공간을 할당하기 전에 CoW( )를 비활성화하면 chattr +c /swapfile문제를 해결할 수 있습니다.

관련 정보