それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

lxc

lxcのコンテナがホスト側のブロックデバイス(SSD)に直接アクセスできるように

LXCのコンテナから、ホストのHDDを参照したい。 色々やり方がある。一番かんたんなのは privileged をつけて特権コンテナにする。 lxc launch ubuntu:xenial <container name> -c security.privileged=true 実際にやってみると。次のようになる。ちゃんとホスト側のブロック</container>…

lxc で実験環境を作るときのメモ

lxc

最近、LXCで実験環境を作ることが多いけど、いつも忘れるのでメモ。 LXC_NAME=test ## lxc launch ubuntu:22.04 $LXC_NAME lxc config device add $LXC_NAME mytap0 nic nictype=macvlan parent=eth0 lxc shell $LXC_NAME ## in shell ## use apt-caching-pr…

lxc の storage / btrfs で 圧縮を有効にする

lxc ディスクの圧縮 以前も試したのだが、Raspiを構成し直すにあたり、もう一度やってみた。 lxd のストレージ・プールbtrfsに透過圧縮(zstd)を有効にする。 - それマグで! 圧縮を有効にする lxc storage set default btrfs.mount_options compress=zstd …

lxc内部 でdocker を動かしたときのメモ。

Ubuntu のLXCでdockerを動かしたときのメモ UbuntuのLXCで ubuntuを動かしてその中で、dockerを動かした。 lxc ubuntuを作る 最初に lxc のストレージを作る lxc storage create bt01 btrfs 作ったストレージ内部にUbuntuを作る lxc launch ubuntu:22.04 doc…

LXC で ppp デバイスが使えない

LXC 内部で l2tp を使おうとしたら、つながらなかったので、色々調べた。 LXC で ppp デバイスが使えない LXC で作ったコンテナで PPPが使えない。L2TPを使おうと思ったら、以下のようにエラーになる。 Oct 24 11:12:51 a01 pppd[739]: Couldn't open the /d…

lxc のコンテナ内部でパーミッションエラーでapt updateができなくなった。

lxc 内で パーミッションエラー lxc のapt を最新版にしようとしたらエラーになった。 lxc exec myhost apt update chown to _apt:root of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted) W: chown …

lxc で hostnamectl が動かない。

lxc rename の問題。 lxc rename でインスタンス名を変更したが、ホストにログインしたときの名前が変わってない。 hostnamectl が動かない。 ホスト名を変えようと思ったけど動いてない。 root@lxc-instance01:~# hostnamectl set-hostname myserver01 Coul…

lxc の btrfs ストレージがぶっ壊れたときの記録

lxc のインスタンスの動作が微妙におかしいので、停止してみみてみた。 srubでエラーになる。 there are uncorrectable errors エラーを見てくる。、 dmesg| grep -e "BTRFS warning.*path:" dmesg| grep -e "BTRFS warning.*path:" | sed -e 's/^.*path\: /…

snap lxd のbtrfsストレージの中に入る

snap lxd の中に入りたい。 BTRFSの場合単純にマウントしてもいいんだけど。 lxc storage list | grep default losetup -l | grep default.img /dev/loop10 0 0 1 0 /var/snap/lxd/common/lxd/disks/default.img 1 512 mount /dev/loop10 /mnt マウントもち…

lxc delete 時間かかりすぎるのでストレージまるごと消したい。

lxc delete 時間かかりすぎる lxc ストレージのbtrfsのrestore(load)に失敗したので。強制的に消す方法を模索する うっかり、コンテナに200GBも入れてしまったので、時間がかかって仕方ない。 いっそのこと先にストレージをけしたらどうなるのか。1Gのコンテ…

lxc のインスタンスにコンソールを接続する

lxc で起動したらコンソールにつなぎたい console は完全に virsh っぽい。 lxc stop vps lxc start --console vps ちゃんと起動ログを確認できる、 takuya@raspi-ubuntu:~$ lxc start d12 --console To detach from the console, press: <ctrl>+a q Queued start </ctrl>…

lxc のインスタンスのIPアドレスを固定する

staic に割り当てたい lxbr0 でDHCPから割り当てられるが、固定したい時がある。 デバイスを割り当ててればい lxbr0 の割当をして、固定する。 lxc config device remove eth1 nginx lxc network attach lxdbr0 nginx eth1 eth1 lxc config device set nginx…

LXCのbtfsストレージの中身を見る

LXCのbtfsストレージの中身を見る LXCのストレージをマウントしてアクセスする。 btrfs は losetup 経由になっている。zfs の場合は違う。 lxc のストレージ情報を見る lxc storage list LXCストレージをマウントしてデータを取り出す。 lxc storage list | …

Debainでlxc/lxdをインストールする snap

debian で lxc を使うなら apt で入るのですが。 sudo apt install lxc apt でインストールされたlxc はコマンド体系がちょっと古いというか、lxd 関連がないので、ちょっと不便 snap で lxd を入れる Debainでもsnapcraft を入れてしまえば、Distro差異が無…

lxc のコンテナにユーザー指定でログインする。

lxc 便利です。 ワン・コマンドで、実験環境が起動するし、Dockerより素直なLinuxマシンなのでテスト用にめっちゃ使ってます。 ユーザーを作ってログインしたい 指定ユーザー"takuya" でログインて実験したい。 ユーザ名を指定して login を呼び出せばオッケ…

linuxのipコマンドでgretap を作って通信してみる

gretap を作る GRE Tap でイーサネット・フレームを転送するVPNを作ってみたい。 wg0 でL2-VPNはできると思う。 wg に L2-VPN機能がないので、 wg 上に ip bridge で gre tap を構成すればいい。 wireguardではL2はサポートされていなので、WG上にGRETAPでL2…

macvlan on macvlan ができるのなら。macvlan on mavlan をlxc に追加してみる。

macvlan on macvlan ができるのなら。lxc に追加してみる。 linuxにmacvlanを追加するコマンド iproute を使ってmacvlan や macvtapを追加する場合は次のようにする。 ip link add link eth0 name macvlan0 type macvlan ip link add link eth0 name macvtap…

lxc でCentOSのコンテナを起動する

centos をぱぱっと作る LXCでCentOSのコンテナを起動して動作させる。 docker と違い ちゃんとinit.d / systemd が起動した centos なので実験・テスト環境にはとても楽。 LXD はほんと、ちょっとしたコツを覚えれば快適に実験環境を作れる。 centos を lxc …

lxc storage コマンドでストレージプールを指定したフォーマット(btrfs/zfs)で作る

lxc でストレージプールを作る lxc storage create でストレージ・プールを増やせる。 ためしに、btrfs で増やしてみた。 lxc storage create bt02 btrfs このコマンドは、オプションを指定しなければ、イメージファイルを作成しそこにプールを作ってくれる…

lxc で ストレージを変更する。(pool/volume間のlxcストレージを移動)

lxc で ストレージを変更する。(pool/volume間の移動) lxd を使って、コンテナを起動しているときに、そのコンテナが乗っかってるストレージを切り替えたい。 今回は、起動しているコンテナのストレージを、ボリューム(プール)間で移動して、使ってるボリ…

LXC で不要になったストレージを取り外す

LXC で不要になったストレージを取り外す LXC で不要になったストレージを取り外す 使用中のストレージを一覧する lxc storage list を使って、いま、ストレージが使われているか確認する。 takuya@lxc-host:~$ lxc storage list +---------+--------+------…

lxc の zfs プールを追加する。

lxc の zfs プールを追加する。 zfs が default だけじゃ使いにくいので。zfs のプールを追加する。 現在のプールを確認 lxc は現在 default と名付けられたZFS プールに紐付いている。 zfs プールを確認 lxc に使ってるストレージとはいえ、zfs であるので …

lxc storage を btrfs のサブボリュームから作成する

lxc storage を btrfs のサブボリュームから 参考資料を見ながら、lxc の storage をbtrfs のサブボリュームで作ることにした。 全体の流れ btrfs のストレージを用意する ストレージを接続する btrfs でフォーマットする。 btrfs をマウントする btrfs でサ…

LXCの起動済みのコンテナにmacvlanのネットワークを足してホスト側ネットと通信する

LXCの起動済みのコンテナにmacvtap/macvlan を足す。 既存のコンテナ・インスタンスがあって、そこにmacvtap を追加する。 すでにあるコンテナは、次の通りのsample01を作ってある。これはlxdbr0を経由して外部と接続する。 takuya@ubuntu:~$ lxc start samp…

macvtap でできた仮想マシンとホストと通信してみる。macvlan/macvtap

macvtap でできた仮想マシンとホストと通信してみる。 macvtap でできた仮想マシンとホストと通信してみる。 macvtap を使った場合、ホスト・ゲスト間の通信ができない。 しかたないので、ホストに別にNICをmacvlan で定義して、そこを経由して通信するとし…

LXC のストレージサイズ変更(拡張・縮小)する。

LXC のストレージサイズが足りない。 LXC のストレージのりサイズをなんとかしたいです。容量不足になって困らないようにしたい。調べました。 lxdのリサイズはストレージのフォーマットに従う。 lxd のbtrfsを拡大する場合 lxd のストレージ一覧 bt01 / btr…

ssh/config で ホストを踏み台にして、直接 lxc のコンテナにログインする。

LXCにssh コマンドでログインしたい。 lxcのコンテナに にいちいちSSHインストールしたりパスワード決めたり、公開鍵を設定するのがめんどくさい。 通常であれば次のようにログインする。 いったん、SSHでログインして、その後にlxc コマンドで shell を起動…

LXC 内部で docker を動かす。 ( docker in LXC container )

lxc

LXC 内部で docker を動かす。 既知の問題点 lxc 内部で docker は動かない ことがある 調べた結果、次の条件で動かない。 docker のoverlay2 が lxc デフォルトzfs で動かない docker のoverlayがありlxc 内部でsnapcraft-docker を使うと動かない。 docker…

LXC のコマンドで基本操作 / lxc でイメージ検索とインストール / centosとubuntu

lxc

LXC のイメージについて。 LXDは仮想マシンの「統合管理」的なものなので 、docker のようなコンテナ、vbox のような仮想マシン、この2つを管理できる。コンテナは lxc のコンテナ、インスタンスは qemu の 仮想マシンを扱えるようですね。 docker と違って…

LXC とホスト間でディレクトリを共有する

lxc

LXC とホスト間でディレクトリを共有する lxc で debian を作って、そこでnginx を運用していると、dockerで volumeの共有みたいにホスト・コンテナ間でディレクトリを共有したい。 docker だと EXPOSE で ディレクトリを、起動時にvolume を指定するだけで…