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

著者情報

ラリー・スミス・ジュニア

プロジェクトについて

Installs and configures ZFS On Linux (http://zfsonlinux.org/)

インストール
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.