Ubuntu 20.04 ZFS에서 스왑 공간을 늘리는 방법은 무엇입니까?

Ubuntu 20.04 ZFS에서 스왑 공간을 늘리는 방법은 무엇입니까?

최근에 설치했어요ZFS가 포함된 우분투 20.04파일 시스템으로. RAM/스왑 영역을 확인했는데 다음과 같습니다.

qallaf89@desktop:~$free-h
              사용 가능한 총 무료 공유 버퍼/캐시 수
메모리: 31Gi 22Gi 4.1Gi 1.9Gi 4.2Gi 6.0Gi
교환: 2.0Gi 0B 2.0Gi

이제 스왑 공간을 정상적으로 늘리려면 다음을 따르십시오.이 튜토리얼은 Digital Ocean에서 제공됩니다.완벽하게 작동합니다. 그러나 ZFS가 있기 때문에 몇 가지 문제가 있습니다.

qallaf89@desktop:~$ sudo fallocate -l 100G /swapfile
Fallocate: Fallocate 실패: 작업이 지원되지 않습니다.

주위를 둘러보니 확실히 그런 게 있는 것 같았어요.ZFS/fallocate() 관련 문제.

나도 겪었어이 문서는 오라클에서 제공됩니다.그러나 이것은 나에게도 효과가 없었습니다.

qallaf89@desktop:~$ 스왑 -l

'swap' 명령을 찾을 수 없습니다. 다음을 의미합니까?

  deb systemtap의 "stap" 명령(4.2-3)
  deb DVB-apps의 "szap" 명령(1.1.1+rev1500-1.2)
  debsoapaligner(2.20-3)의 "soap" 명령
  deb sway의 'sway' 명령(1.4-2)
  deb slurm-client(19.05.5-1)의 "smap" 명령
  deb secure-delete(3.1-6ubuntu2)의 "sswap" 명령
  deb snapd의 "snap" 명령(2.44.3+20.04)
  debuckless-tools의 "swarp" 명령(44-1)
  deb odin(2.0.3-2build1)의 "swab" 명령

시도해 보세요: sudo apt install <deb 이름>

qallaf89@desktop:~$ sudo apt 쇼 교환
N: 교환된 패킷을 찾을 수 없습니다.
N: 교환된 패킷을 찾을 수 없습니다.
두번째:패키지를 찾을 수 없습니다

이에 대한 지식이 있는 사람이 스왑 공간을 늘리는 데 도움을 줄 수 있습니까?

답변1

이것은 ArchWiki에서 나온 것입니다.https://wiki.archlinux.org/index.php/ZFS#Swap_volume:

  1. "getconf PAGESIZE"는 무엇을 의미합니까? 즉, 메모리 시스템의 기본 메모리 페이지 크기입니까?
  2. 스왑용 zfs 볼륨 생성
  3. 교환 준비 완료
  4. 교환을 시작하다
  5. etc/fstab에서 스왑용으로 표시하십시오(zfs 속성 덕분에 이 작업을 자동으로 수행하는 것이 전적으로 가능합니다.)

그래서:

zfs create -V 8G -b $(getconf PAGESIZE) \
          -o logbias=throughput -o sync=always\
          -o primarycache=metadata \
          -o com.sun:auto-snapshot=false rpool/swap
mkswap -f /dev/zvol/rpool/swap
swapon /dev/zvol/rpool/swap

특히 디스크 자체가 SSD인 경우 logbias=thr.., Primarycache=meta 및 '-o com.sun...'이 적절한지 잘 모르겠습니다. 어느 쪽이든 이는 8GB의 큰 zfs 볼륨을 생성합니다.

etc/fstab에서:

/dev/zvol/rpool/swap none swap discard 0 0

ZFS 관련: 더 많은 디스크를 고려하고 찾아야 하며 설정의 가용성을 얻으려면 미러를 추가하는 방법에 대해 생각해야 합니다. 1TB 삼성 SSD를 잃어버리면 풀 전체가 망가집니다.

sda5 소개:zpool 관리 부분FreeBSD 매뉴얼에는 vdev를 미러 쌍으로 변경하는 방법이 설명되어 있습니다.

이 경우:

  1. sda5 교환
  2. 최종 클리어 태그
  3. vdev 다시 연결
  4. 재실버링을 기다리고 있습니다.
  5. 런처 추가

그래서:

swapoff /dev/sda5
zpool attach bpool sda5 sda6

그리고 재실버링을 기다립니다.

답변2

ZFS 파일 시스템에서는 시도하지 않았지만 ext3, ext3, ext4, XFS 및 기타 여러 시스템에서는 시도했습니다. 라이브 USB 스틱에서 부팅하고 "설치하지 않고 Ubuntu 사용해 보기"를 선택하고 일단 실행되면 이를 사용하여 gparted파티션 크기를 조정할 수 있습니다. 파티션을 확장하여 충분한 공간을 확보하려면 파티션을 축소해야 합니다 swap. 이것가이드매우 도움이 됩니다. "GParted 사용"까지 아래로 스크롤하세요. 도움이 될 보다 포괄적인 매뉴얼이 필요한 경우여기에서 하나 찾아보세요. 아래로 스크롤하여 "파티션 크기 조정"

답변3

나는 전에 그것을 사용했다systemd-swap패키지는 약간의 성공을 거두었습니다(지금까지는 아치에서만). 이는 필요할 때 디렉터리 내에서 스왑 파일을 동적으로 할당하므로 여유 공간을 차지하는 큰 ZVOL을 풀에 유지할 필요가 없습니다. 그것이 얼마나 성능이 좋은지는 잘 모르겠고 다른 사람들이 내가 여기서 할 수 있는 것보다 더 많은 정보를 제공할 수 있을 수도 있습니다. 그러나 저는 새 파일 시스템을 만들고 위와 com.sun:auto-snapshot같이 속성을 설정했습니다 false. 이렇게 하면 특정 유틸리티가 스냅샷을 생성하는 것을 방지할 수 있지만 그렇게 하지 않았습니다. 수동으로 생성된 스냅샷이 아직까지 남아 있다는 사실을 아직 깨닫지 못했기 snapshot -r때문에 곧 이 작업을 수행할 수 있는 더 나은 방법을 찾아볼 것입니다! 그러나 일반적으로 이 데이터 세트에 대해 스냅샷이 생성되지 않도록 하고 속도와 공간 절충점(해당하는 경우)을 달성하도록 시나리오를 조정하려고 합니다. 그러면 당신은 원할 것입니다systemd-swap 구성 파일을 가리킵니다.이 데이터 세트의 장착 지점을 향합니다.

관련 정보