대규모 Linux 배포판(예: Ubuntu)을 RAM(예: DDR4)의 매핑된 파티션에 로드

대규모 Linux 배포판(예: Ubuntu)을 RAM(예: DDR4)의 매핑된 파티션에 로드

SSD/USB/NVMe/eMMC에서 부팅하여 Linux OS(예: Ubuntu)와 애플리케이션, 서비스 및 컨테이너를 RAM(예: DDR3 또는 DDR4)에서 생성된 파티션에 완전히 로드할 수 있는 방법이 있습니까? 이상적으로는 로드된 OS에 관계없이 파일 저장을 위해 SSD 또는 HDD와 같은 다른 파티션을 사용할 수 있어야 하며, 크로스 OS 지원을 위해 FAT32 또는 exFAT도 가능합니다.

이는 대규모 Linux 배포판이라도 몇 단위 또는 수십 GB만 사용하는 반면, 많은 사용자는 홈 엔터테인먼트, 소프트웨어 개발, 게임, 미디어 제작, 사무 생산성 등 다양한 배포판에 동일한 하드웨어를 사용하기를 원하기 때문입니다. 부트로더 또는 다른 USB 키에서 환경을 실행하고 해당 환경을 RAM에서 완전히 실행하고 사용자 파일은 SSD 또는 HDD에 있으며 종료 프로세스, 수동 프로세스 또는 RAM에 보관됩니다. 파일은 자동으로 원본과 동기화됩니다. 다음 부팅을 위한 하드 드라이브/USB.

예를 들어 게임용 사용자 정의 Steam 기반 OS를 사용하고, 휴식이나 파티를 위해 미디어 스트리밍 OS로 전환하고, 사무용 생산성 OS로 전환한 다음 USB 키 또는 SSD 파티션에서 교육용 OS 또는 네트워크 서버로 전환할 수 있습니다. OS 또는 유사, 다양한 OS의 다양한 휘발성 및 비휘발성 로드 간에 사용자 폴더를 공유하고, 원래 드라이브 또는 키에 다시 보관합니다. 크고 저렴한 RAID 어레이 또는 단일 SSD를 사용하여 게임, 파일, 미디어 등을 저장할 수 있지만 RAM은 핵심 운영 체제, 애플리케이션, 라이브러리, 코드 및 서비스와 같은 용도로 사용됩니다.

로드 시간은 증가하지만 대규모 비용을 지불할 필요 없이 대용량 RAM과 저렴한 USB 로더/아카이브 또는 SSD를 사용하면 운영 체제, 애플리케이션, 라이브러리, 서비스 및 데이터베이스, 컨테이너, 게임 및 미디어 제작 속도를 향상시킬 수 있습니다. SSD 또는 NVMe 드라이브는 운영 체제와 애플리케이션을 RAM에 로드하는 것보다 더 빠르게 운영 체제와 애플리케이션을 로드하지만 응답 속도가 느려 이러한 요구 사항을 충족할 수 있습니다.

RAM에서 전체 드라이브를 실행하는 기능은 서버 시나리오, 특히 SSD에 적합하지 않고 탐색 시간, 읽기 및 쓰기 시간, 대역폭, 재작성 횟수 및 재작성 횟수 측면에서 RAM에 더 적합한 데이터베이스에서도 중요합니다. 실패. 예를 들어 Linux 서버 운영 체제는 하나 이상의 RAM 파티션에서 데이터베이스, 서버, 코드, 라이브러리 등이 포함된 Docker 컨테이너를 실행하고 추가 드라이브를 활용하여 사용자 파일을 저장합니다. 또한 RAM 스왑/작업 폴더 영역은 백업 또는 미디어 제작 시나리오에서 보관 시간을 줄이는 데에도 유용합니다.

많은 사용자가 현재 버스 속도에 만족하지만 전문가, 서버, 게임 및 맞춤형 시장에서는 RAM에 로드된 운영 체제 파일/서비스 요소와 빠른 CPU/GPU를 결합하는 기능이 매우 유용할 것입니다.

이 아이디어는 RAM에 매핑된 파티션을 생성하고 bakc 매뉴얼을 원래 드라이브 폴더에 보관할 수 있는 일부 타사 Windows 소프트웨어 솔루션과 PCI 카드 및 DDR(2?) 메모리를 인식 가능한 내부 하드 드라이브로 사용했던 몇 년 전의 Hyperdrive에서 나왔습니다. 이 아이디어는 특히 HDD에서 SDD, PCIe로 전환할 때 Linux 커널에 적용할 수 있어 복잡성을 더욱 줄이고 RAM에서 특정 기능이나 전체 운영 체제를 실행하는 보안을 잠재적으로 향상시킬 수 있습니다.

또 다른 옵션은 HD를 사용하지 않지만 휘발성 스토리지에만 대용량 RAM 어레이를 사용하거나 백업/스냅샷 및 부팅 파일을 위해 외부 스토리지를 사용하는 서버의 네트워크 시나리오에서 작은 NAND 플래시 부팅 로드를 갖는 것입니다. 원격 네트워크 부팅을 사용하여 클라우드에서 RAM으로 운영 체제를 로드하고 다른 클라우드에 보관합니다.

사용자 파일(예: 미디어)용 SATA3의 6Gb/s, OS/라이브러리/애플리케이션/컨테이너 등의 경우 PC4-25600의 25Gb/s 대부분의 최신 그리드의 전원 공급 장치는 거의 모든 상황에서 충분히 일관되며, 덜 발전된 그리드 및 모바일 상황에서는 UPS 또는 표준 드라이브를 사용할 수 있습니다.

의견을 환영합니다.

답변1

네트워크에서 부팅하려면 작은 Linux 설치를 준비해야 합니다. 인터넷 검색을 한 후 PXE를 통해 다운로드하고 부팅할 수 있는 Archlinux와 같은 실제 운영 체제가 포함된 일부 ISO를 찾았습니다. 이러한 Live OS는 전적으로 RAM에서 실행되지만 일반적으로 기본 볼륨은 squashfs로 압축되고 일부 폴더는 overlayfs로 읽기/쓰기로 변환됩니다. RAM에 다운로드할 수 있고 해당 이미지에서 Linux를 완전히 실행할 수 있는 내 디스크 이미지(CD가 아닌 ISO)를 설치하고 구성하는 데 시간이 좀 걸리고 많은 독서가 필요했습니다. 사용된 부트로더는 SYSLINUX와 매우 유용한 모듈 "memdisk"입니다. 디스크 이미지의 크기는 900MB에 불과하며 설치된 소프트웨어 패키지는 복구 지향적입니다. 이미지는 NET 또는 USB 플래시 드라이브에서 RAM으로 다운로드할 수 있습니다.

답변2

당신의 관심사가 속도라면, 이런 일이 일어났습니다. 게으른 로드(요구 시 로드) 및 공간이 부족할 때 RAM에서 제거된다는 점만 빼면요.

커널(Linux)은 캐시를 사용하여 디스크 내용의 복사본을 RAM에 저장합니다. 디스크를 다시 방문하면 이 캐시된 복사본을 사용하여 읽기 및 쓰기 속도를 높입니다. 쓰기는 결국 디스크에 다시 기록됩니다.

do 를 사용하여 원하는 동작을 강제할 수 있습니다 find / -mount -type f -print0 | xargs -0 cat. 그러나 이렇게 하면 전체 시스템이 로드될 때까지 성능이 저하됩니다. 일반적으로 자체 작업을 수행하도록 두는 것이 가장 좋습니다.

답변3

설치 프로그램을 ISO 이미지로 포함하는 거의 모든 배포판은 전체 배포판을 RAM에 로드하고 그런 방식으로 시스템을 실행하는 명령줄 스위치를 지원합니다. 새로 생성된 모든 파일은 분명히 RAM에 남아 있으며 완료되면 해당 파일을 저장소에 덤프하는 것이 귀하의 임무입니다.

  • ~을 위한우분투그리고더반그것은toram
  • ~을 위한시스템 구조copytoram( docache이전 버전에서는) 입니다 .
  • ~을 위한페도라 모자그것은 live_ram또는rd.live.ram
  • ~을 위한오픈수세그것은toram

전부는 아니지만 대부분의 배포판에는 LiveCD 버전을 생성하는 도구가 있지만 ISO 이미지 자체를 생성할 필요는 없습니다. ISO를 생성한 다음 이미지를 추출 vmlinuzinitrd마스터하고 이를 모든 파티션에 배치하고 세 가지를 모두 GRUB 구성에 추가할 수 있습니다. 자신의 배포판 버전(매우 배포판에 따라 다름)을 마스터하는 과정의 일환으로 1) 특정 파티션을 자동으로 마운트하거나 2) 종료 시 사용자 파일을 디스크에 덤프하는 systemd 스크립트를 추가할 수 있습니다.

위키피디아기본적으로 RAM에서 실행되는 모든 배포의 개요입니다. 이러한 배포판 중 일부에서는 종료 시 사용자 파일을 자동으로 덤프할 수 있다고 생각됩니다.

관련 정보