私は2台のコンピュータとパッチコードを持っています。ハブ/スイッチ/ルータなどではなく直接接続のみ可能です。より多くのRAMが必要で、他のコンピュータには利用可能なRAMがたくさんあります。イーサネットを介してそのRAMをスワップパーティションとしてどのように使用できますか?
どちらのシステムもArch Linuxを実行します。
答え1
まず第一に、これは一般的に悪い考えです。イーサネット接続が切断された場合(またはスワップスペースを提供するシステムがシャットダウン/クラッシュ/再起動する場合)、スワップスペースを使用するシステムはスワップスペースにアクセスできないため終了します。また、交換時に通常よりも悪いパフォーマンスの問題が発生する可能性があります(これを防ぐには、10GbEと本当に良いNICが必要です。この時点でより多くのRAMを確保する方が良いでしょう)。
つまり、いくつかのオプションがあります。私の経験では、この種の作業に最も簡単で信頼できるのはATAoE(ATA over Ethernet)またはNBDです。残念ながら、ArchはデフォルトでATAoEをサポートしていませんが(NBDよりも設定が簡単で高速で、スワップスペースの片側を提供するために特別なソフトウェアのみが必要です)、NBDをサポートしています。 RAMが多いシステムでメモリ内ファイルシステムを作成し、そこにスワップファイルを作成し、ファイルシステムをNBDと共有し、他のシステムに接続するように指示する必要があります。
NFSを使用してファイルを共有することも可能ですが、エラーが発生しやすく効率が悪くなる可能性があります。
答え2
NBDスワップを介して他のコンピュータのRAMを共有します。
ホスト/サーバー
ramfs設定(必要な場合、そうでない場合はnbdに直接移動)
sudo mkdir /mnt/ram
sudo mount -t tmpfs -o size=16G tmpfs /mnt/ram
構成ファイル/etc/nbd-server/config
:
[generic]
user = nbd
group = nbd
[swap]
exportname = /mnt/ram/swap
copyonwrite = false
prerun = truncate -s 16G /mnt/ram/swap && mkswap /mnt/ram/swap
NBDスタート
sudo systemctl start nbd
顧客
sudo nbd-client 192.168.1.3 -name swap /dev/nbd0
sudo swapon /dev/nbd0
答え3
あった、そうだった。リモートnfsファイルシステムをマウントします。 mkfile、mkswap、スワップオン。組み込みシステムでデフォルトでコンパイルしたい場合に便利です。