アーカイブ
最新
- 01. 投資メモ 2026-08-22
- 05. 本日のゴールデンクロス、デッドクロス 08/21
- 01. 投資メモ 2026-08-21
- 11. ITメモ 2026-08-20 データベースサーバー構築メモ02 Debianサーバーのスマホデザリング、Wifi接続設定
- 05. 本日のゴールデンクロス、デッドクロス 08/20
- 01. 投資メモ 2026-08-20
- 11. ITメモ 2026-08-19 データベースサーバー構築メモ01 パーティション設定、ZFS導入、PostgreSQLインストールなど
日別
カテゴリ別
株価データベースの専用PCを導入したので、その際のメモです。
Debianサーバーインストール時のパーティション設定
次のように領域を割り当てました。株価データベース用マシンなので、ポスグレ(PostgreSQL)領域を大きくしています。
| マウントポイント | 割り当て容量 | 役割・理由 |
|---|---|---|
/boot/efi | 512 MB 〜 1 GB | UEFIブート用に必要な領域(FAT32形式) |
/ | 100 GB | OS本体、/usr(aptで入るアプリ)、/etc など |
/var/lib/postgresql | 残り | PostgreSQLのデータベース本体・ログ用領域 |
/home | 100 GB | ユーザー(作業用アカウント)のホーム領域 |
| swap | 16 GB | メモリ退避領域(32GB RAM積載のため控えめでOK) |
- パーティショニング方法は、”手動”を選択します。”手動”でないと、マウントポイントのカスタマイズができません。
Windowsからの接続準備(SSH導入)
SSHのインストール
sudo apt update
sudo apt install openssh-server
IPアドレスの確認コマンド
ip a
(ip addr や ip address の略です)
ZFSの適用
PostgreSQLのデータ領域(/var/lib/postgres)には、強固なファイルシステムであるZFSを使用しました。
そのZFSのインストールから、ファイルシステムマウントまでの手順を、以下に記します。
作業はすべて root 権限 で行います。sudo -i や su - で 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のモジュールがないと言われたら、次の手順を実行します。
- /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
- パッケージ一覧の更新
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

コメントを残す