カテゴリー: LInux

  • 11. ITメモ 2026-08-20 データベースサーバー構築メモ02 Debianサーバーのスマホデザリング、Wifi接続設定

    11. ITメモ 2026-08-20 データベースサーバー構築メモ02 Debianサーバーのスマホデザリング、Wifi接続設定

    お盆休みに実家に行った際、ミニPCのサーバーをWifiネットワークに接続しようとして苦労したので、メモしときます。
    まず私のPC、スマホ機器は、次のようです。

    • サーバー AMD Ryzen7のミニPC、OSはDebianサーバー
    • スマホ Pixel 7a
    • ノートPC Windows11

    スマホデザリング

    Geminiに相談したら、スマホ、特にPixelのデザリングでは「ゲートウェイ(スマホ側のUSB N/Wインターフェース)のIPアドレスは 192.168.43.1固定」ということだったので信じていたら、間違いでした。
    そこでUSB IP接続のアドレス確認方法を、次に記します。

    デザリングのUSB IPアドレス確認

    1. スマホで次のように設定アプリのメニューを選択
      設定 → ネットワークとインターネット → アクセスポイントとデザリング
    2. USBケーブルでPCと接続
      データ転送可能なケーブルを使用します。充電しかできないケーブルは使えません。
    3. スマホのUSB デザリングをONにします

    Windows PCの設定で”ネットワークとインターネット”を開き、スマホデザリングに該当するネットワーク接続を探し、そのプロパティをクリックすると、ネットワーク接続の情報が見られます。

    私が自宅でやってみた場合は、次のようです。

    集計リンク速度 (送受信):	4250/4250 (Mbps)
    リンク ローカル IPv6 アドレス:	fe80::a76d:6f3:c1c1:16%6
    IPv4 アドレス:	10.180.96.106
    IPv4 デフォルト ゲートウェイ:	10.180.96.15
    IPv4 DNS サーバー:	10.180.96.152 (非暗号化)
    製造元:	Microsoft
    説明:	UsbNcm Host Device
    ドライバーのバージョン:	10.0.28000.2336
    物理アドレス (MAC):	8A:9B:3C:82:D2:B5
    

    実家でやった時には、ゲートウェイのIPアドレスが 172.22.146.86でしたので、いつでも同じアドレスではないようです。ただ今のところ、Wifi接続先が変わらなければデザリングのネットワークアドレスは同一で、Windowsで調べたIPアドレスがDebianでの接続でも使われていますので、この方法でデザリングで使用するIPアドレスを調べることが可能です。

    準備が終わったので、デザリングが使えるようにします。

    1. スマホをDebianのPCにUSB接続します
    2. 次のコマンドで、USBインターフェースを有効化します
    # USBインターフェースのIPを一度リセット
    sudo ip addr flush dev usb0
    
    # インターフェースを有効化
    sudo ip link set usb0 up
    1. IPアドレス、ゲートウェイ指定を実行します
      IPアドレスは先に調べたアドレスに差し替えて実行してください
    # サーバーに IP を割り当て
    sudo ip addr add 192.168.43.100/24 dev usb0
    
    # デフォルトゲートウェイ(スマホ)を追加
    sudo ip route add default via 192.168.43.1 dev usb0
    1. /etc/resolv.confにネームサーバーを登録します

    これで、スマホを介してネットワークを使用可能になりました。

    Wifiネットワーク設定

    1. まずWifi用ソフトウェアをインストールします
    sudo apt update
    sudo apt install -y network-manager iw wireless-tools
    1. Wi-Fiデバイス名(例: wlan0wlp2s0 など)を確認します
    ip link
    # または
    nmcli device
    1. Wifiネットワークに接続します
    sudo nmcli device wifi connect "SSID名" password "Wi-Fiパスワード"

    成功すると Device 'wlan0' successfully activated... と表示されます。

  • 11. ITメモ 2026-08-19 データベースサーバー構築メモ01 パーティション設定、ZFS導入、PostgreSQLインストールなど

    11. ITメモ 2026-08-19 データベースサーバー構築メモ01 パーティション設定、ZFS導入、PostgreSQLインストールなど

    株価データベースの専用PCを導入したので、その際のメモです。

    Debianサーバーインストール時のパーティション設定

    次のように領域を割り当てました。株価データベース用マシンなので、ポスグレ(PostgreSQL)領域を大きくしています。

    マウントポイント割り当て容量役割・理由
    /boot/efi512 MB 〜 1 GBUEFIブート用に必要な領域(FAT32形式)
    /100 GBOS本体、/usraptで入るアプリ)、/etc など
    /var/lib/postgresql残りPostgreSQLのデータベース本体・ログ用領域
    /home100 GBユーザー(作業用アカウント)のホーム領域
    swap16 GBメモリ退避領域(32GB RAM積載のため控えめでOK)
    • パーティショニング方法は、”手動”を選択します。”手動”でないと、マウントポイントのカスタマイズができません。

    Windowsからの接続準備(SSH導入)

    SSHのインストール

    sudo apt update
    sudo apt install openssh-server

    IPアドレスの確認コマンド

    ip a
    

    ip addrip address の略です)

    ZFSの適用

    PostgreSQLのデータ領域(/var/lib/postgres)には、強固なファイルシステムであるZFSを使用しました。
    そのZFSのインストールから、ファイルシステムマウントまでの手順を、以下に記します。

    作業はすべて root 権限 で行います。sudo -isu - で root ユーザーに切替えて進めてください。

    Step 1. 事前準備とアンマウント

    現在 ext4 でマウントされている領域を一度アンマウントします。

    # 1. PostgreSQLサービスが動いている場合は停止(新規インストールの場合は念のため)
    systemctl stop postgresql 2>/dev/null || true
    
    # 2. 現在のマウント状況と対象デバイスを確認
    df -h /var/lib/postgresql

    出力例として /dev/nvme0n1p5/dev/sda5 などのデバイス名が表示されます。このデバイス名をメモしておいてください(以降のコマンドでは /dev/sdXN と表記します)。

    # 3. アンマウント実行
    umount /var/lib/postgresql

    Step 2. ZFS パッケージのインストール

    DebianでZFS(OpenZFS)を使用するためのツール類をインストールします。

    # 1. non-free リポジトリを有効化(Debian 12以降は non-free-firmware も含まれます)
    apt update
    apt install -y zfsutils-linux
    
    

    ※カーネルモジュールのビルドが自動的に行われます。完了まで数分かかる場合があります。

    もし上のインストール手順実行時にZFSのモジュールがないと言われたら、次の手順を実行します。

    1. /etc/apt/sources.listに追加します。
    deb http://ftp.jp.debian.org/debian/ trixie main contrib non-free non-free-firmware
    deb-src http://ftp.jp.debian.org/debian/ trixie main contrib non-free non-free-firmware
    
    deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
    deb-src http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
    
    deb http://ftp.jp.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
    deb-src http://ftp.jp.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
    1. パッケージ一覧の更新
    sudo apt update

    Step 3. ZFS プールとデータセットの作成

    アンマウントしたパーティション全体をZFSプールとして初期化し、PostgreSQL専用のデータセットを作成します。

    # 1. ZFSプールの作成(ZFSプール名: zpool-pg)
    # ※ /dev/sdXN は Step 1 でメモしたパーティション(例: /dev/sda5 や /dev/nvme0n1p5)に置き換えてください
    zpool create -f -o ashift=12 -O acltype=posixacl -O xattr=sa zpool-pg /dev/sdXN
    
    # 2. PostgreSQL用データセットの作成とマウントポイントの設定
    zfs create -o mountpoint=/var/lib/postgresql zpool-pg/postgres
    
    

    Step 4. PostgreSQL向け ZFS パラメータの設定

    PostgreSQLの性能と安全性(クラッシュ耐性)を最大化するために、ZFSの設定を変更します。

    # 1. 透過圧縮の有効化(lz4は極めて高速でCPU負荷が低く、ディスク容量とI/Oを節約できます)
    zfs set compression=lz4 zpool-pg/postgres
    
    # 2. レコードサイズの最適化(PostgreSQLの標準ブロックサイズ 8KB に合わせます)
    zfs set recordsize=8k zpool-pg/postgres
    
    # 3. メタデータキャッシュ(atime)の無効化(無駄な書き込みI/Oを削減)
    zfs set atime=off zpool-pg/postgres
    
    # 4. 二重ライトアヘッドログ(WAL)の無駄を省く設定(必要に応じて)
    # PostgreSQLの8KBブロックとZFSの書き換え整合性を保つため、logbiasをlatencyに設定
    zfs set logbias=latency zpool-pg/postgres
    
    

    Step 5. 所有権(パーミッション)の設定と旧設定の削除

    ZFSの初期化直後は /var/lib/postgresql の所有権が root になっているため、PostgreSQLユーザーに権限を付与します。

    PostgreSQLはまだインストールされていないので、postgresユーザーを作成します。

    sudo adduser --system --group --home /var/lib/postgresql postgres
    

    以下で、権限設定を行ないます。

    # 1. postgres ユーザーが存在するか確認の上、所有権を変更
    chown -R postgres:postgres /var/lib/postgresql
    chmod 700 /var/lib/postgresql
    
    # 2. /etc/fstab から古い ext4 のマウント設定を削除・無効化
    # (ZFSはOS起動時に自動でマウントを管理するため、/etc/fstab の記述は不要になります)
    nano /etc/fstab
    
    

    /var/lib/postgresql が書かれている行の先頭に # を付けてコメントアウトするか、削除して保存してください。

    postgreSQLの導入

    これは簡単で、次のコマンドを実行して、postgreSQLをインストールします。

    apt install postgresql