mrlesmithjr.zfs
目次 DocTocを使って生成されました
ansible-zfs
LinuxにZFSをインストールし、設定します(http://zfsonlinux.org/)
要件
ZFSプールを作成するために未使用の物理ハードドライブが少なくとも1台必要です。
Vagrant
Vagrantを使用してテスト環境を立ち上げます。
vagrant up
これにより、いくつかのZFSボリュームを含むサーバーが立ち上がります。iSCSIデバイスも含まれています... クライアントノードからiSCSIボリュームを表示・使用できます。
vagrant ssh client
sudo iscsiadm -m discovery -t st -p 192.168.202.201
sudo iscsiadm -m node --login
これでクライアントに/dev/sdbと/dev/sdcが表示され、フォーマットしてマウントできます。
sudo fdisk -l
ディスク /dev/sdb: 1073 MB, 1073741824 バイト
34 ヘッド, 61 セクター/トラック, 1011 シリンダー, 合計 2097152 セクター
単位 = 1 セクターあたり 512 バイト
セクターサイズ (論理/物理): 512 バイト / 512 バイト
I/Oサイズ (最小/最適): 512 バイト / 512 バイト
ディスク識別子: 0x00000000
ディスク /dev/sdbには有効なパーティションテーブルがありません。
ディスク /dev/sdc: 2147 MB, 2147483648 バイト
67 ヘッド, 62 セクター/トラック, 1009 シリンダー, 合計 4194304 セクター
単位 = 1 セクターあたり 512 バイト
セクターサイズ (論理/物理): 512 バイト / 512 バイト
I/Oサイズ (最小/最適): 512 バイト / 512 バイト
ディスク識別子: 0x00000000
ディスク /dev/sdcには有効なパーティションテーブルがありません。
役割変数
---
# ansible-zfsのデフォルトファイル
# ZFSファイルシステムが作成されるかどうかの定義
zfs_create_filesystems: false
# ZFSプールが作成されるかどうかの定義
zfs_create_pools: false
# ZFSボリュームが作成されるかどうかの定義
zfs_create_volumes: false
zfs_debian_package_key: http://zfsonlinux.org/4D5843EA.asc
zfs_debian_package_url: http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux
zfs_debian_package_version: 6
zfs_debian_package: "zfsonlinux_{{ zfs_debian_package_version }}_all.deb"
zfs_enable_auto_snapshots: true
# サーバーにiSCSIボリュームを提供するためにiscsitargetがインストールされるかどうかの定義
zfs_enable_iscsi: false
# NFSを提供するためにNFSカーネルサーバーがインストールされるべきかどうかの定義
zfs_enable_nfs: false
# zfs_performance_tuningに定義されたパラメータが適用されるかどうかの定義
zfs_enable_performance_tuning: false
# Sambaがインストールされ、設定されるかどうかの定義
zfs_enable_samba: false
# 暗号化されたファイルシステムの鍵が起動時に読み込まれるかどうかの定義
zfs_autoload_encryption_keys: false
# 管理するファイルシステム
zfs_filesystems: []
# 例:
# - name: nfs
# pool: tank
# atime: off
# compression: lz4
# logbias: latency
...
# この役割がZFSのインストールと更新を管理するかどうかの定義
zfs_install_update: true
# iscsitargetサービスが有効にされるかどうかの定義
zfs_iscsistarget_enable: "{{ zfs_enable_iscsi }}"
# 完全修飾ドメイン名を逆で定義...(local.vagrant)
zfs_iscsistarget_iqn: iqn.2001-04.org.example
# 各種設定...
依存関係
なし
サンプルプレイブック
GitHub
---
- name: LinuxにZFSをインストール
hosts: all
become: true
vars:
- zfs_iscsistarget_iqn: iqn.2001-04.local.vagrant # 完全修飾ドメイン名を逆で定義...(local.vagrant)
- zfs_iscsitarget_target_portals:
- 192.168.202.0/24
- zfs_enable_iscsi: true
- zfs_enable_nfs: true
roles:
- role: ansible-zfs
tasks:
高度なサンプルZPool作成
zfs_pools: # 管理するZPoolの定義
- name: 'SSD-TANK'
action: 'create'
options: # 作成時に永続的オプションを設定
ashift: 13
compression: 'lz4'
devices: # プールを作成するデバイスの定義
- 'ata-INTEL_SSDSC2BW240A4_CVDA352100YL2403GN'
...
type: 'raidz2' # プールタイプの定義
state: 'present'
...
ライセンス
BSD
著者情報
ラリー・スミス・ジュニア
- @mrlesmithjr
- http://everythingshouldbevirtual.com
- mrlesmithjr [at] gmail.com
インストール
ansible-galaxy install mrlesmithjr.zfsライセンス
mit
ダウンロード
516.2k
所有者
Sharing practical insights on virtualization, cloud, automation, and DevOps to help others build, automate, and innovate with confidence.
