自宅サーバのアップデート (1)
1月中旬に Ubuntu 18.04 + xen + ownCloud で運用していた自宅サーバ (mac mini 2011) で、いつもどおりレポジトリの更新をインストールしたら、dom-u の owncloud のネットワークがつながらなくなった。(*)
振り返ってみると、自宅サーバは debian squeeze で運用開始して、その後 ubuntu 11.04 に移行し、代々 release-upgrade を繰り返して環境を引き継いできたものであった。その間、インターフェースの名前は predictable に代わり、ネットワーク設定が netplan になり、自宅サーバは時代の変化に取り残された化石マシンになってしまっていた。
それが原因だろうと思い、predictable interface name にしてみたり、netplan にしてみたりしたが、結局つながらない。dom-u ではネットワークが up しており、dom-0 では vif1.0 が見えている、でもつながってないので、bridge のところで何かおきているらしい。web 検索で見つけた echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables というのも試してみたがつながらない。
数日あれこれ試行錯誤したがだめで、かなり悩んだが、そういえば ubuntu 18.04 はまもなくサポート終了だし、環境を一新するいい機会だと考えることにした。
当院開業の時、サーバを仮想環境で動かすに当たって、準仮想化の Xen と、コンテナ型の Linux-VServer、 OpenVZ を比較検討して、xen を採用したという経緯があった。
今の状況だと、検討するとしたら準仮想化の kvm かコンテナ型の docker ということになると思う。今回は kvm で構築することにした。機会があれば docker も試してみたい気はする。
kvm のインストール
- kvm はカーネルに組み込まれているので、xen の様に hypervisor を新たにインストールする必要はない。開業当時、kvm が linux カーネルに組み込まれることが決定してニュースになっていたのを思い出す。
$ sudo apt install qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager $ lsmod | grep kvm kvm_intel 282624 0 kvm 663552 1 kvm_intel
- 仮想マシンの管理には xl ではなく、libvirt (コマンドは virsh) を使う
$ sudo systemctl enable --now libvirtd $ systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) :
- br_netfilter を組み込んで無効にする。これをしておかないと、仮想マシンが外に出られない。(元々 xen の dom-u がつながらなくなった件もこれが原因かと思ったのだが、この設定をしてもつながらなかった)
/etc/modules-load.d/modules.conf# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. br_netfilter
/etc/sysctl.conf#added net.bridge.bridge-nf-call-iptables = 0
$ cat /proc/sys/net/bridge/bridge-nf-call-iptables 0
- netplan でブリッジ br0 を作る
network: ethernets: enp2s0f0: dhcp4: no bridges: br0: interfaces: - enp2s0f0 dhcp4: no addresses: - 192.168.1.100/24 nameservers: addresses: - 192.168.1.1 search: [] routes: - to: default via: 192.168.1.1 version: 2
- その br0 を使う network を定義する br0.xml を作って、virsh で kvm 用のネットワーク設定を作る。できた kvm 用のネットワーク設定は /etc/libvirt/qemu/networks/ に入る。
$ cat br0.xml <network> <name>host-bridge</name> <forward mode="bridge"/> <bridge name="br0"/> </network> $ sudo virsh net-define br0.xml Network host-bridge defined from br0.xml $ sudo cat /etc/libvirt/qemu/networks/host-bridge.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh net-edit host-bridge or other application using the libvirt API. --> <network> <name>host-bridge</name> <uuid>c8b61fe1-7602-3028-15f3-2954207391fa</uuid> <forward mode='bridge'/> <bridge name='br0'/> </network> $ sudo virsh net-list --all Name State Autostart Persistent -------------------------------------------------- default active yes yes host-bridge inactive no yes
- ブリッジの起動と、自動起動の設定
$ sudo virsh net-start host-bridge Network host-bridge started $ sudo virsh net-autostart host-bridge Network host-bridge marked as autostarted $ sudo virsh net-list --all Name State Autostart Persistent ------------------------------------------------ default active yes yes host-bridge active yes yes
以上で、xen の dom-0 にあたる部分の設定が完了。
-----(*)2023-02-16 追記
多分これだと思われる。
« 15年目の運用まとめ | トップページ | 自宅サーバのアップデート (2) »
「サーバ」カテゴリの記事
- サーバの CPU アップグレード(2023.02.11)
- 業務用マシンを ubuntu 20.04 にアップグレード(2023.02.10)
- 自宅サーバのアップデート (2)(2023.02.08)
- 自宅サーバのアップデート (1)(2023.02.07)
- OwnCloud 10.9.0 へのアップグレード(2021.12.23)
「トラブル」カテゴリの記事
- jma-receview が動かなくなった(2023.02.13)
- 自宅サーバのアップデート (1)(2023.02.07)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- orca パッチ後の受付トラブル〜原因(2019.07.02)
- orca パッチ後の受付トラブル(2019.07.01)