GNU/Linux >> Linux の 問題 >  >> Linux

Ansibleを使用して論理ボリュームマネージャーの構成を自動化する

Ansibleは、自動化、構成、およびインフラストラクチャ管理ツールです。以前の記事では、Ansibleを紹介し、システムの役割について説明しています。この記事では、Ansibleを使用してLogical Volume Manager(LVM)を構成する方法を説明します。 Ansibleを使用してLVMを構成すると、システム管理者はタスクをより効率的に実行し、手動での作業に費やす時間を短縮できます。パーティションを作成してLVMを初期化するAnsibleプレイブックを作成できます。

[次のこともお楽しみいただけます:LogicalVolumeManagerの概要]

LVMの概要

ご存知のように、プライマリパーティションを拡張および縮小することはできません。このようなシナリオでは、ディスクに余分なスペースが必要な場合に問題が発生する可能性があります。 LVMを使用すると、論理ボリュームに新しいディスクを追加および削除できるため、この問題を克服できます。 LVMは、RHEL7以降のRedHat Enterprise Linux(RHEL)のデフォルトインストールの一部です。

LVMを使用する前に理解しておく必要のある重要な項目は次のとおりです。

  • PV -ディスク、パーティション、またはループバックファイルで初期化された物理ボリューム。 PVを初期化すると、デバイスの先頭にラベルが作成されます。
  • VG -ボリュームグループは、論理ボリューム(LV)のコレクションです。 PV内にVGを作成します。
  • LV -論理ボリュームは、ディスク上の標準パーティションと同じです。 1つのVG内に複数のLVを作成できます。必要なスペースに応じてLVのサイズを変更できます。

パーティションの作成

RHEL 8では、 Partedを使用してパーティションを作成します 効用。 別れ MS-DOSまたはGUIDパーティションテーブル(GPT)パーティションを使用してパーティションを作成する柔軟性を提供します。 Ansibleでは、 Partedを使用できます パーティショニング用のモジュール。

この例では、/dev/vdbについて考えてみます。 ディスク名として。 2つの1GBパーティションを作成します。 Partedモジュールを使用するだけで、任意のサイズのパーティションを作成できます。

例:

---
- name: playbook for simple 1 GB partition
  hosts: vm1.example.com
  become: true
  tasks:
    - name: create partition
      parted:
        device: /dev/vdb
        number: 1
        flags: [ lvm ]
        state: present
        part_end: 2GB

次を使用してこのプレイブックを実行します:

$ ansible-playbook partition.yml

lsblkを使用できます パーティションが現在存在することを確認するコマンド。

LVMの初期化とLVの作成

パーティションを作成したら、LVを初期化します。初期化するには、最初にPVとVGの両方を作成する必要があります。 Ansible lvgを使用する 物理エクステント(PE)サイズのPVとVGを作成するモジュール。 PEは、VGを固定サイズに分割します。デフォルトでは、PEのサイズは4MBです。 VGの作成中にデフォルトサイズを変更できます。一般に、PEサイズが大きいほど、パフォーマンスが向上します。

例:

- name: task for creating volume group
  lvg:
      vg: sample-vg
      pvs: /dev/vdb1
      pesize: 16

- name: Install lvm2 dependency
  package:
    name: lvm2
    state: present

次のタスクはLVを作成します。 lvol モジュールはLVを作成します。 LVを作成するときは、VG名、サイズ、LV名などのオプションを指定します。

この例では、2GBのVGが1GBのサイズの最初のLVを作成します。

例:

- name: task for creating logical volume
  lvol:
      vg: sample-vg
      lv:  sample-lv
      size: 1g
      force: yes

この作成されたLVを使用するには、ファイルシステム内にそのパーティションをマウントする必要があります。データを保存するためにこのLVにアクセスできるのはあなただけです。 Ansibleでは、ファイルシステムを使用します filesystemを使用してブロックデバイスをフォーマットするためのモジュール 。フォーマット後、任意のディレクトリにパーティションをマウントします。 マウントを使用できます Ansibleのモジュール。ディレクトリ(/data1 この例では)は、プレイブックを実行する前に存在します。

例:

 - name: Create directory data1 if does not exist
      file:
        path: /data1
        state: directory
        mode: '0755'
- name: format the xfs filesystem
  filesystem:
    fstype: xfs
    dev: /dev/sample-vg/sample-lv
- name: mount the lv on /data1
  mount:
    path: /data1
    src: /dev/sample-vg/sample-lv
    fstype: xfs
    state: mounted


例: プレイブック全体:

---
- name: playbook for simple 1 GB partition
  hosts: localhost
  become: true
  tasks:
    - name: create partition
      parted:
        device: /dev/nvme1n1
        number: 1
        flags: [ lvm ]
        state: present
        part_end: 2GB

    - name: Install lvm2 dependency
      package:
        name: lvm2
        state: present

    - name: task for creating volume group
      lvg:
          vg: sample-vg
          pvs: /dev/nvme1n1p1
          pesize: 16

    - name: task for creating logical volume
      lvol:
          vg: sample-vg
          lv:  sample-lv
          size: 1g
          force: yes

    - name: Create directory data1 if does not exist
      file:
        path: /data1
        state: directory
        mode: '0755'

    - name: format the xfs filesystem
      filesystem:
        fstype: xfs
        dev: /dev/sample-vg/sample-lv

    - name: mount the lv on /data1
      mount:
        path: /data1
        src: /dev/sample-vg/sample-lv
        fstype: xfs
        state: mounted

このハンドブックを実行して、LVが作成されているかどうかを確認するか、lvsを使用してください コマンド。

LVMの機能の1つは、LVのサイズを拡張できることです。手動で、lvextendを使用できます 指図。 Ansibleでは、 lvolを使用できます sample-lvのサイズを拡張するモジュール 。

例:

- name: Extend the logical volume to take all remaining space of the PVs and resize the underlying filesystem
  lvol:
      vg: sample-vg
      lv: sample-lv
      size: 2g
      resizefs: true
      force: yes

lvextendの使用 コマンドまたはlvol モジュールは、LVを拡張するのに役立ちます。このlvol ボリュームの場合は、resizefsを使用します デバイスにあるマウントされていないファイルシステムを拡大するパラメータ。

LVのサイズを縮小するための構文は、次のとおりです。

- name: Extend the logical volume to take all remaining space of the PVs and resize the underlying filesystem
      lvol:
          vg: sample-vg
          lv: sample-lv
          size: 700m
          shrink: yes
          force: yes

[Ansibleについてもっと知りたいですか? RedHatから無料の技術概要コースを受講してください。 Ansible Essentials:自動化の技術概要のシンプルさ。 ]

まとめ

この記事では、簡単なAnsibleプレイブックを使用してLVMを構成する方法を説明しました。単純なプレイブックを使用する代わりに、ロールを作成できます。 、上記と同じプロセスとモジュールを使用します。 Ansibleは、手動タスクを減らし、LVM構成の効率を高めるのに役立ちます。この記事で説明する方法を使用すると、複数の管理対象ノードでの操作が簡素化されます。


Linux
  1. Ansibleを使用してLinuxユーザーを作成する方法

  2. Lum – Lvmとそれに含まれる物理ボリュームと論理ボリュームを使用してパーティションを拡張する方法は?

  3. 物理的なボリュームを縮小する方法は?

  1. Linuxパーティションまたは論理ボリュームにファイルシステムを作成する方法

  2. LVM 構成 :論理ボリューム (LV) の操作/ユーティリティ

  3. vgcfgrestore を使用して LVM で削除された論理ボリューム (LV) を復元する方法

  1. Ansibleを使用したマルチパス仮想マシン

  2. プライマリと論理パーティション?

  3. 論理ボリューム管理を使用してルートを縮小しますか?