인메모리 RAM 디스크 만들기

Compute Engine 인스턴스에는 애플리케이션을 실행하는 데 사용되는 고성능 엔터프라이즈급 메모리가 있습니다. 지연 시간은 매우 짧고 처리량은 많은 RAM 디스크를 만들도록 이 메모리의 일부를 할당할 수 있습니다. RAM 디스크는 애플리케이션이 파일 시스템 구조를 예상할 수 있고, 간단한 방법으로 시스템 메모리에 데이터를 저장할 수 없을 때 효과적입니다. RAM 디스크가 단독으로 스토리지 중복성이나 유연성을 제공하지는 않으므로 다른 인스턴스 스토리지 옵션과 함께 RAM 디스크를 사용하는 것이 가장 좋습니다.

RAM 디스크는 애플리케이션과 인스턴스 메모리를 공유합니다. 인스턴스에 RAM 디스크와 애플리케이션을 포함할 수 있을 만큼 충분한 메모리가 없는 경우 높은 메모리 머신 유형으로 인스턴스를 만들거나 기존 인스턴스를 업그레이드하여 메모리를 더 추가하세요.

시작하기 전에

RAM 디스크 만들기

많은 Linux 운영체제에 기본적으로 설치되는 tmpfs 도구로 RAM 디스크를 만들 수 있습니다.

  1. 인스턴스에 사용 가능한 메모리가 충분하지 않은 경우 인스턴스 머신 유형을 메모리가 더 많은 머신 유형으로 변경할 수 있습니다.

  2. SSH를 통해 인스턴스에 연결합니다. 이 예시에서는 VM 인스턴스 페이지로 이동한 다음 RAM 디스크를 추가하려는 인스턴스 옆의 SSH 버튼을 클릭합니다.

  3. RAM 디스크의 마운트 지점을 만듭니다.

    $ sudo mkdir /mnt/ram-disk
    
  4. tmpfs RAM 디스크를 만들고 마운트합니다. 메모리를 놓고 애플리케이션과 경쟁하거나 사용 가능한 메모리를 다 소모하지 않고 스토리지 요구사항을 충족할 수 있도록 size 속성을 적절한 값으로 결정해야 합니다. 이 예시에서는 인스턴스에 208GB의 메모리를 가진 n1-highmem-32 머신 유형이 있으므로 RAM 디스크 크기로 50g가 적절합니다.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. 인스턴스를 다시 시작하면 기기가 자동으로 다시 마운트되도록 RAM 디스크를 /etc/fstab 파일에 추가합니다.

    $ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
    

RAM 디스크 삭제

다른 볼륨과 마찬가지로 tmpfs RAM 디스크를 마운트 해제할 수 있습니다. 그러면 RAM 디스크와 그 안에 저장된 모든 데이터가 삭제됩니다. 이 예시에서는 /mnt/ram-disk에 마운트된 RAM 디스크를 삭제합니다.

$ sudo umount /mnt/ram-disk

인스턴스가 재시작되는 사이에 자동으로 RAM 디스크 데이터 백업

인스턴스가 다시 시작될 때까지 RAM 디스크 데이터를 보존하기 위해 인스턴스가 재시작되기 전에 RAM 디스크를 백업 할 수 있습니다. 데이터를 보존하려면 영구 디스크에 데이터를 백업하세요.

  1. RAM 디스크의 백업 디스크로 사용할 영구 디스크를 만들고 마운트합니다. 디스크가 RAM 디스크의 정보를 담을 만큼 충분히 큰지 확인합니다.

  2. 백업 볼륨에 RAM 디스크 콘텐츠를 쓰는 rsync 명령어로 인스턴스에 대한 종료 스크립트를 만듭니다. 이 예시에서는 gcloud 도구를 사용하여 RAM 디스크가 /mnt/ram-disk에 마운트되고 영구 디스크가 /mnt/ram-disk-backup에 마운트된 인스턴스에 shutdown-script 메타데이터를 추가합니다.

    gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash
    rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/
    EOF"
    
  3. 인스턴스가 다시 시작될 때 RAM 디스크로 파일을 다시 복원하는 시작 스크립트를 만들 수도 있습니다. gcloud 도구를 사용하여 인스턴스에 startup-script 메타데이터를 추가합니다.

    gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash
    rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/
    EOF"
    
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서