DRBDの下位デバイスと、DRBDのデバイスにLVMを使ってみる。 DRBDの公式ドキュメントを参考に作業する。 まずはDRBDの下位デバイスとして使う論理ボリューム vg01/r0 を作成する。 drbd1# pvcreate /dev/vdb Physical volume "/dev/vdb" successfully created…
前回に続いてDRBDの練習。 障害が発生したときの切換をシミュレーションしてみる。 現時点での状態を確認。 drbd1# drbdadm status r0 r0 role:Primary disk:UpToDate peer role:Secondary replication:Established peer-disk:UpToDate drbd2# drbdadm statu…
前回に続いてDRBDの練習。 計画的にアクティブ系を切り替える状況をシミュレーションしてみる。ただし、ここではサービス無停止までは考慮しない。 現時点での状態を確認。 drbd1# drbdadm status r0 r0 role:Primary disk:UpToDate peer role:Secondary rep…
DRBD (Distributed Replicated Block Device) を使ってディスクをミラーリングしたシステムを作ってみる。 The DRBD User’s Guideを参考に作業する。 日本語版もあるが、訳が少し怪しいところがあるので、なるべく英語版を参照することにする。 テスト環境と…
前回作ったKubernetesマニフェストで作ったpodをIgnitionで自動起動するように、Fedora CoreOSインストールしてみる。 まずは、Butane config wp-pod.buを用意する。 variant: fcos version: 1.3.0 passwd: users: - name: core ssh_authorized_keys: - (ss…
Fedora CoreOS上でpodを動かすのが目標だけど、その前にまず手動でpodを作って動かしてみる。 Podmanのコマンドリファレンスを参照しながら作業を進める。 まずは独自コンテナイメージを作成する。 今回はサンプルとしてWordPressに環境変数を設定しただけの…
今回はFedora CoreOSというよりはIgnitionとButaneの話。 Ignitionで手元のディレクトリに下を丸ごとFedora CoreOS上に配置してみる。 まずは配置するディレクトリ構造を作る。 $ mkdir test $ mkdir test/dir1 $ mkdir test/dir2 $ echo 'Test file 1' > te…
前回までに引き続きFedora CoreOSで、ネットワークの設定をしてみる。 今回は、2個のネットワークインタフェースを持ち、1個目がDHCPでアドレスを取ってきてホスト名をcoreosに設定し、2個目は静的にIPアドレスを設定する構成にする。 Fedora CoreOSでインス…
前回の続き。 今回は、ISOイメージをカスタマイズして、スタンドアロンインストールを試してみる。 まずは、docker上でcoreos-installerを使ってisoイメージをダウンロードする。 $ docker run --rm -v $PWD:/data -w /data quay.io/coreos/coreos-installer…
前回の続き。 現在のFedora CoreOSでは、Zincatiを使って自動アップデートするように設定されていて、そのデフォルト設定では、アップデートの準備が出来ると自動でリブートするようになっている。 そこで、特定の曜日・時間にだけリブートするように設定し…
KVM上にFedora CoreOSをインストールしてみる。 公式ドキュメントを参考に作業を進める。 最初に、公式ダウンロードページから、QEMU用のイメージファイルをダウンロードして展開する。 $ curl -O 'https://builds.coreos.fedoraproject.org/prod/streams/st…
前回はVMごとにネットワークフィルタを設定したが、共通のフィルタはホスト環境で設定した方が間違いがない。 そこで、ホスト環境のネットワークインタフェースに接続したブリッジに対してnftablesでフィルタを設定してみる。 ここでは、ホスト環境のネット…
libvirtに備わっているネットワークフィルタ機能 (nwfilter) をVMに適用してみる。 libvirtの公式ドキュメントを参考に作業を進める。 nwfilterは(バックエンドがnftablesであっても)iptablesを使ってフィルタリングを行うので、まずはnwfilter未設定時のi…
KVMのデフォルトネットワークは通常、ブリッジでプライベートアドレスのサブネットを作ってNATで外部に出ていくものになっているが、これをホスト環境のネットワークインタフェースに直接ブリッジするもの(ホストブリッジ)に変えてみる。 まずは現状の確認…
sshの公開鍵認証でしかログインできないユーザを作成してみる。 まずはユーザ user-a を作成する(必要なオプションは適当に指定)。 # useradd -m user-a user-aをロックする。 # passwd -l user-a この段階で、コンソールからログインしようとしても Login…
KVMでLVMベースのストレージプールを作ってデフォルトにしてみる。 LVMベースのストレージプールは、基本的に(通常の方法では)シンプロビジョニングは使えないが、性能面では有利らしい。 一番最初に、LVMベースのストレージプールに対応しているか確認。 …
前回の続き。 実際にシンプロビジョニング論理ボリュームを使ってみる。 まずは、ファイルシステムを作成してマウントする。 # mkfs.ext4 /dev/vg01/thinvolume01 # mkfs.ext4 /dev/vg01/thinvolume02 # mkdir /mnt/thinvolume01 /mnt/thinvolume02 # mount …
LVMでシンプロビジョニングの論理ボリュームを作ってみる。 まず必要なパッケージがインストールされていない場合はインストールする。 Debianの場合 # apt install thin-provisioning-tools Red Hatのドキュメントを参考に進める。 空きのあるVG(ここではv…
KVMで稼働中のVMにディスクをオンラインで追加してみる。 ディスクのイメージファイルを作成してVMにアタッチする。 host$ dd if=/dev/zero of=vdb.img bs=1M seek=2048 count=0 host$ virsh attach-disk kvmdom --source $PWD/vdb.img --target vdb VM側で…
標準ではないパーティション構成を自動で作成してみる。 今回は敢えて変な構成でパーティションを作成する。 ドライブ vda: 20 GiB vdb: 16 GiB (ブートドライブ) パーティション形式: UEFI/GPT LVMボリュームグループ vdb: /boot, /boot/efi以外全部をVG …
KVMで最初のディスクドライブ以外からブートさせてみる。 libvirtのドキュメントを参考に、 対象VM(ここではkvmdom)のXMLファイルを書き換える。 $ virsh edit kvmdom <os> <type arch='x86_64' machine='pc-q35-4.2'>hvm</type> - <boot dev='hd'/> </os> ... <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='.../vdb.img'/> </source></driver></disk>
USBメモリをFAT32でフォーマットする。 (sdXの部分は実際のデバイス名に置き換える。) # dd if=/dev/zero of=/dev/sdX bs=1M count=1 # echo "n;p;1;;;t;c;w" | tr ';' '\n' | fdisk /dev/sdX # partx -u /dev/sdX # mkdosfs -F32 /dev/sdX1 # mount /dev/…
前回の続き。 必須ではなさそうなコマンドをインストールしないようにしてみる。 preceed.cfgに以下の行を追加 d-i base-installer/excludes string apt-utils less nano vim-common vim-tiny taskselとかは書いても除外されないらしい。 というわけで、late…
続いて最小の構成でのインストールを試してみる。 使ったpreseed.cfgは以下 $ grep -v -e '^#' -e '^$' preseed.cfg d-i debian-installer/locale string C d-i debian-installer/language string C d-i debian-installer/country string JP d-i keyboard-co…
自動インストールを試してみる。 まずは前回インストールしたシステムでpreseedファイルを取得する。 参考: https://www.debian.org/releases/testing/amd64/apbs03.en.html # apt install debconf-utils # echo "#_preseed_V1" > /tmp/kvm-preseed.cfg # de…
まずはvirt-installで普通にインストールしてみる。 Installation Guide $ curl -L -O https://cdimage.debian.org/cdimage/bullseye_di_rc1/amd64/iso-cd/debian-bullseye-DI-rc1-amd64-netinst.iso $ virt-install \ --name bullseye \ --memory 4096 --vc…