研究室のSolarisサーバ設定覚書part 5

ZFS関係の設定をします。

ZFS poolの作成

zfspoolという名前のストレージプールの名前とします。マウントはしないようにします。

# /usr/sbin/zpool create -f zfspool c0t2d0s7
# /usr/sbin/zfs unmount zfspool
# /usr/sbin/zfs set mountpoint=none zfspool

ZFSでswapパーティションの作成

Solaris ZFS 管理ガイドのままですが、次のようにして、8GBのswapパーティションを管理できます。ただし、ダンプデバイスにはできません。

# /usr/sbin/zfs create -V 8gb zfspool/swap
# /usr/sbin/swap -a /dev/zvol/dsk/zfspool/swap

/optをZFSに移行

とりあえず、圧縮は行わないことにします。

# /usr/sbin/zfs create zfspool/opt
# /usr/sbin/zfs set mountpoint=/export/opt zfspool/opt
# /usr/bin/cd /opt
# /usr/bin/find . -print -depth | /usr/bin/cpio -pdm /export/opt
# /usr/sbin/zfs set mountpoint=legacy zfspool/opt
# mv /opt /opt_orig
# /usr/bin/echo 'zfspool/opt - /opt zfs - yes -' >> /etc/vfstab
# /usr/bin/mkdir /opt
# /usr/sbin/mount /opt
(rm -r /opt_orig)

ZFSでユーザのホームディレクトリを作成

ユーザごとにファイルシステムを作成し、NFSで共有できるようにします。

# /usr/sbin/zfs create zfspool/home
# /usr/sbin/zfs set mountpoint=/export/home zfspool/home
# /usr/sbin/zfs set sharenfs=on zfspool/home
# /usr/sbin/zfs share zfspool/home

次にユーザのファイルシステムを作成します。ユーザのファイルシステムには、10GBのquotaをかけ、毎日スナップショットをとり、.zfsのスナップショットを可視にして、ユーザ自身で復活できるようにします。
以下のようなスクリプトを書いて、ユーザごとに実行しました*1

#!/bin/sh
/usr/sbin/zfs create zfspool/home/$1
/usr/bin/chown $1:$1 /export/home/$1
/usr/bin/chmod g+s /export/home/$1
/usr/sbin/zfs set quota=10GB zfspool/home/$1
/usr/sbin/zfs set compression=on zfspool/home/$1
/usr/sbin/zfs set snapdir=visible zfspool/home/$1

*1:研究室注: 完成版は/net/lucifer/export/opt/sbin/useradd.scriptを見てください