大規模な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サーバーオペレーティングシステムは、1つ以上のRAMパーティションでデータベース、サーバー、コード、ライブラリなどを含むDockerコンテナを実行し、追加のドライブを利用してユーザーファイルを保存します。 RAMスワップ/作業フォルダ領域は、バックアップまたはメディア作成のシナリオでのアーカイブ時間を短縮するのにも役立ちます。

多くのユーザーが現在のバス速度に満足していますが、エキスパート、サーバー、ゲーム、カスタム市場では、RAMにロードされているオペレーティングシステムのファイル/サービス要素と高速CPU / GPUを組み合わせる機能が非常に便利です。

このアイデアは、RAMにマッピングされたパーティションを作成し、bakcマニュアルを元のドライブフォルダに保存できるいくつかのサードパーティのWindowsソフトウェアソリューションと、PCIカードとDDR(2?)メモリを認識可能な内部ハードドライブとして使用していた数年前のHyperdriveで出ました。このアイデアは、特にHDDからSDD、PCIeへの移行時にLinuxカーネルに適用できるため、複雑さをさらに軽減し、RAM上の特定の機能やオペレーティングシステム全体を実行するセキュリティを潜在的に向上させることができます。

もう1つの選択肢は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に残り、完了したらそのファイルをリポジトリにダンプすることがあなたの使命です。

  • ~のためUbuntuそしてダーバンそれtoram
  • ~のためシステム構造copytoramdocache以前のバージョンでは)です。
  • ~のためFedoraの帽子それlive_ramまたはrd.live.ram
  • ~のためオープン水勢それtoram

すべてではありませんが、ほとんどのディストリビューションにはLiveCDバージョンを作成するツールがありますが、ISOイメージ自体を作成する必要はありません。 ISOを作成し、イメージを抽出してvmlinuzマスターinitrdし、それをすべてのパーティションに配置し、3つすべてをGRUB構成に追加できます。独自のディストリビューションバージョン(非常にディストリビューションによって異なります)をマスターするプロセスの一環として、1)特定のパーティションを自動的にマウントするか、2)シャットダウン時にユーザーファイルをディスクにダンプするsystemdスクリプトを追加できます。

ウィキペディアデフォルトでは、RAMで実行されるすべての展開の概要です。これらのディストリビューションの一部では、シャットダウン時にユーザーファイルを自動的にダンプできると考えられています。

関連情報