作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

DRBDの練習 4 〜LVM / DRBD / LVM〜

DRBDの下位デバイスと、DRBDのデバイスにLVMを使ってみる。 DRBDの公式ドキュメントを参考に作業する。 まずはDRBDの下位デバイスとして使う論理ボリューム vg01/r0 を作成する。 drbd1# pvcreate /dev/vdb Physical volume "/dev/vdb" successfully created…

DRBDの練習 3 〜障害対応での切換〜

前回に続いてDRBDの練習。 障害が発生したときの切換をシミュレーションしてみる。 現時点での状態を確認。 drbd1# drbdadm status r0 r0 role:Primary disk:UpToDate peer role:Secondary replication:Established peer-disk:UpToDate drbd2# drbdadm statu…

DRBDの練習 2 〜アクティブ系の切換〜

前回に続いてDRBDの練習。 計画的にアクティブ系を切り替える状況をシミュレーションしてみる。ただし、ここではサービス無停止までは考慮しない。 現時点での状態を確認。 drbd1# drbdadm status r0 r0 role:Primary disk:UpToDate peer role:Secondary rep…

DRBDの練習 1 〜DRBDのシステム構築〜

DRBD (Distributed Replicated Block Device) を使ってディスクをミラーリングしたシステムを作ってみる。 The DRBD User’s Guideを参考に作業する。 日本語版もあるが、訳が少し怪しいところがあるので、なるべく英語版を参照することにする。 テスト環境と…

Fedora CoreOSのインストール練習 4 〜podの自動起動〜

前回作ったKubernetesマニフェストで作ったpodをIgnitionで自動起動するように、Fedora CoreOSインストールしてみる。 まずは、Butane config wp-pod.buを用意する。 variant: fcos version: 1.3.0 passwd: users: - name: core ssh_authorized_keys: - (ss…

Podmanで独自コンテナイメージとボリュームを使うpodの作成

Fedora CoreOS上でpodを動かすのが目標だけど、その前にまず手動でpodを作って動かしてみる。 Podmanのコマンドリファレンスを参照しながら作業を進める。 まずは独自コンテナイメージを作成する。 今回はサンプルとしてWordPressに環境変数を設定しただけの…

Fedora CoreOSのインストール練習 4 〜ディレクトリ配置〜

今回はFedora CoreOSというよりはIgnitionとButaneの話。 Ignitionで手元のディレクトリに下を丸ごとFedora CoreOS上に配置してみる。 まずは配置するディレクトリ構造を作る。 $ mkdir test $ mkdir test/dir1 $ mkdir test/dir2 $ echo 'Test file 1' > te…

Fedora CoreOSのインストール練習 4 〜ネットワーク設定〜

前回までに引き続きFedora CoreOSで、ネットワークの設定をしてみる。 今回は、2個のネットワークインタフェースを持ち、1個目がDHCPでアドレスを取ってきてホスト名をcoreosに設定し、2個目は静的にIPアドレスを設定する構成にする。 Fedora CoreOSでインス…

Fedora CoreOSのインストール練習 3 〜CDからのスタンドアロンインストール〜

前回の続き。 今回は、ISOイメージをカスタマイズして、スタンドアロンインストールを試してみる。 まずは、docker上でcoreos-installerを使ってisoイメージをダウンロードする。 $ docker run --rm -v $PWD:/data -w /data quay.io/coreos/coreos-installer…

Fedora CoreOSのインストール練習 2 〜自動アップデートの設定〜

前回の続き。 現在のFedora CoreOSでは、Zincatiを使って自動アップデートするように設定されていて、そのデフォルト設定では、アップデートの準備が出来ると自動でリブートするようになっている。 そこで、特定の曜日・時間にだけリブートするように設定し…

Fedora CoreOSのインストール練習 1

KVM上にFedora CoreOSをインストールしてみる。 公式ドキュメントを参考に作業を進める。 最初に、公式ダウンロードページから、QEMU用のイメージファイルをダウンロードして展開する。 $ curl -O 'https://builds.coreos.fedoraproject.org/prod/streams/st…

nftablesでブリッジにフィルタ設定

前回はVMごとにネットワークフィルタを設定したが、共通のフィルタはホスト環境で設定した方が間違いがない。 そこで、ホスト環境のネットワークインタフェースに接続したブリッジに対してnftablesでフィルタを設定してみる。 ここでは、ホスト環境のネット…

KVMのネットワークフィルタ設定

libvirtに備わっているネットワークフィルタ機能 (nwfilter) をVMに適用してみる。 libvirtの公式ドキュメントを参考に作業を進める。 nwfilterは(バックエンドがnftablesであっても)iptablesを使ってフィルタリングを行うので、まずはnwfilter未設定時のi…

KVMのデフォルトネットワークをブリッジへ変更

KVMのデフォルトネットワークは通常、ブリッジでプライベートアドレスのサブネットを作ってNATで外部に出ていくものになっているが、これをホスト環境のネットワークインタフェースに直接ブリッジするもの(ホストブリッジ)に変えてみる。 まずは現状の確認…

sshの公開鍵認証専用のユーザを作成

sshの公開鍵認証でしかログインできないユーザを作成してみる。 まずはユーザ user-a を作成する(必要なオプションは適当に指定)。 # useradd -m user-a user-aをロックする。 # passwd -l user-a この段階で、コンソールからログインしようとしても Login…

KVMのLVMベースのストレージプールの作成

KVMでLVMベースのストレージプールを作ってデフォルトにしてみる。 LVMベースのストレージプールは、基本的に(通常の方法では)シンプロビジョニングは使えないが、性能面では有利らしい。 一番最初に、LVMベースのストレージプールに対応しているか確認。 …

LVMでのシンプロビジョニング論理ボリュームの作成 2

前回の続き。 実際にシンプロビジョニング論理ボリュームを使ってみる。 まずは、ファイルシステムを作成してマウントする。 # mkfs.ext4 /dev/vg01/thinvolume01 # mkfs.ext4 /dev/vg01/thinvolume02 # mkdir /mnt/thinvolume01 /mnt/thinvolume02 # mount …

LVMでのシンプロビジョニング論理ボリュームの作成 1

LVMでシンプロビジョニングの論理ボリュームを作ってみる。 まず必要なパッケージがインストールされていない場合はインストールする。 Debianの場合 # apt install thin-provisioning-tools Red Hatのドキュメントを参考に進める。 空きのあるVG(ここではv…

KVMの稼働中VMにディスクのオンライン追加

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側で…

Debian bullseye (RC1)のインストール練習 5 〜自動パーティション構成〜

標準ではないパーティション構成を自動で作成してみる。 今回は敢えて変な構成でパーティションを作成する。 ドライブ vda: 20 GiB vdb: 16 GiB (ブートドライブ) パーティション形式: UEFI/GPT LVMボリュームグループ vdb: /boot, /boot/efi以外全部をVG …

KVMのブートドライブ変更

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>

Debian bullseye (RC1)を自動インストールするUEFIブート用USBメモリの作成

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/…

Debian bullseye (RC1)のインストール練習 4 〜最小インストール〜

前回の続き。 必須ではなさそうなコマンドをインストールしないようにしてみる。 preceed.cfgに以下の行を追加 d-i base-installer/excludes string apt-utils less nano vim-common vim-tiny taskselとかは書いても除外されないらしい。 というわけで、late…

Debian bullseye (RC1)のインストール練習 3 〜最小インストール〜

続いて最小の構成でのインストールを試してみる。 使った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…

Debian bullseye (RC1)のインストール練習 2 〜自動インストール〜

自動インストールを試してみる。 まずは前回インストールしたシステムでpreseedファイルを取得する。 参考: https://www.debian.org/releases/testing/amd64/apbs03.en.html # apt install debconf-utils # echo "#_preseed_V1" > /tmp/kvm-preseed.cfg # de…

Debian bullseye (RC1)のインストール練習 1

まずは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…