私のrootfsスナップショットはにあります/mnt/mydisk/my_test_snapshot
。これは現在のシステムの完全に書き込み可能なコピーです。
/mnt/mydisk/my_test_snapshot
ルート()フォルダとして使用する仮想マシン(LXCコンテナなど)を起動したいです/
。
最後に、仮想マシンを起動する必要があります。
- 通常のフォルダをルートファイルシステムとして使用します。
- 仮想環境で許可されているいくつかのフォルダをマウントできます。
- ブリッジネットワーキングが使用されます(ホスト設定は0です
iptables
)。 - GUIアプリケーションを使用するためのXウィンドウが欲しいです。
この目的のためのLXC公式(またはその他)はありますか?
目的
Dockerのようなものを再作成できるかどうかはわかりませんが、次の利点が必要です。
BTRFSをルートパーティションとして使用することで、現在のシステムのスナップショットを無料で撮影し、仮想マシンを起動して操作できます(新しいソフトウェアのインストール、アイテムの削除など)。
仮想マシンで行ったことが好きな場合は、そのスナップショット(仮想マシンによって変更されたもの)から物理OSを起動できます。
すべての仮想マシンを無料で複製できます(時間、CPU、またはディスク容量)。
たとえば、この仮想マシンをタイムマシンとして使用して、データベースサーバーにバックアップを提供できます。良いことは、1分以内にすべてのサービスをすぐにオンラインに切り替えることができることです。災害復旧を促進します。
どのアップグレードやオペレーティングシステムの変更に関係なく、必要に応じて実行する必要がある特定のアプリケーション(ビジネスで使用)に使用できます。これにより、ディスクスペースのコストなしで各アプリケーションのサンドボックスが完全に作成され、BTRFSの利点(スナップショットなど)が提供されます。
ベストアンサー1
部分的な答えで、サブボリュームからLXCコンテナを作成するために、次のツールを作成しました。https://github.com/aktos-io/lxc-to-the-future
if [[ "$(grep br0 /etc/network/interfaces)" == "" ]]; then
cat <<ONETIME
ERROR: No br0 bridge device found in /etc/network/interfaces file.
Edit your /etc/network/interfaces file and add/replace the following section
in place of "eth0" section
auto br0
iface br0 inet dhcp
bridge-ifaces eth0
bridge-ports eth0
up ifconfig eth0 up
iface eth0 inet manual
Then run the following:
sudo ifup br0
ONETIME
exit
fi
echo "creating the container directory: $NAME"
mkdir $DIR/$NAME
echo "creating a writable snapshot of given subvolume"
btrfs sub snap $SUBVOL $DIR/$NAME/rootfs
echo "emptying the /etc/fstab file"
echo > $DIR/$NAME/rootfs/etc/fstab
echo "creating the config file"
cat <<CONFIG > $DIR/$NAME/config
# Distribution configuration
lxc.include = /usr/share/lxc/config/debian.common.conf
lxc.arch = x86_64
# Container specific configuration
lxc.rootfs = /var/lib/lxc/$NAME/rootfs
lxc.rootfs.backend = dir
lxc.utsname = $NAME
# Network configuration
lxc.network.type = veth
lxc.network.link = br0
lxc.network.hwaddr = 00:16:3e:7e:11:ac
lxc.network.flags = up
CONFIG