Ansible adalah otomatisasi, konfigurasi, dan alat manajemen infrastruktur. Artikel saya sebelumnya memperkenalkan Ansible dan menjelaskan peran sistem. Dalam artikel ini, saya mendemonstrasikan cara mengonfigurasi Logical Volume Manager (LVM) menggunakan Ansible. Mengonfigurasi LVM dengan Ansible membantu administrator sistem melakukan tugas mereka dengan lebih efisien dan menghabiskan lebih sedikit waktu untuk bekerja secara manual. Anda dapat membuat buku pedoman Ansible yang membuat partisi dan menginisialisasi LVM.
[ Anda mungkin juga menikmati: Pengantar Logical Volume Manager ]
Ikhtisar LVM
Seperti yang Anda ketahui, partisi primer tidak dapat diperpanjang dan dikurangi. Skenario seperti itu dapat menimbulkan masalah saat Anda membutuhkan ruang ekstra pada disk. Menggunakan LVM, Anda dapat mengatasi masalah ini karena LVM memungkinkan Anda menambah dan menghapus disk baru ke volume logis. LVM adalah bagian dari instalasi default Red Hat Enterprise Linux (RHEL) sejak RHEL 7.
Berikut adalah beberapa item penting yang perlu Anda pahami sebelum menggunakan LVM:
- PV —Volume Fisik diinisialisasi pada disk, partisi, atau file loopback. Saat Anda menginisialisasi PV, label akan dibuat di awal perangkat.
- VG —Volume Group adalah kumpulan volume logis (LV). Anda membuat VG di dalam PV.
- LV —Logical Volume sama seperti partisi standar pada disk. Anda dapat membuat beberapa LV di dalam satu VG. Anda dapat mengubah ukuran LV sesuai dengan ruang yang dibutuhkan.
Membuat Partisi
Di RHEL 8, Anda membuat partisi menggunakan Parted kegunaan. Berpisah memberi Anda fleksibilitas untuk membuat partisi menggunakan MS-DOS atau partisi GUID Partition Table (GPT). Di Ansible, Anda dapat menggunakan Parted modul untuk partisi.
Dalam contoh ini, pertimbangkan /dev/vdb
sebagai nama disk. Buat dua partisi 1 GB. Cukup menggunakan modul Parted, Anda dapat membuat partisi dengan ukuran berapa pun.
Contoh:
---
- 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
Jalankan buku pedoman ini menggunakan:
$ ansible-playbook partition.yml
Anda dapat menggunakan lsblk
perintah untuk memeriksa bahwa partisi sekarang ada.
Menginisialisasi LVM dan membuat LV
Setelah membuat partisi, inisialisasi LV. Untuk melakukan inisialisasi, Anda harus membuat PV dan VG terlebih dahulu. Gunakan lvg yang Mungkin modul untuk membuat PV dan VG dengan ukuran Physical Extents (PE). PE membagi VG menjadi ukuran tetap. Secara default, ukuran PE adalah 4MB. Anda dapat mengubah ukuran default saat membuat VG. Umumnya, ukuran PE yang lebih besar memberikan kinerja yang lebih baik.
Contoh:
- name: task for creating volume group
lvg:
vg: sample-vg
pvs: /dev/vdb1
pesize: 16
- name: Install lvm2 dependency
package:
name: lvm2
state: present
Tugas berikutnya membuat LV. lvol modul membuat LV. Saat membuat LV, Anda memberikan opsi seperti nama VG, ukuran, dan nama LV.
Dalam contoh ini, VG 2 GB membuat LV pertama dengan ukuran 1 GB.
Contoh:
- name: task for creating logical volume
lvol:
vg: sample-vg
lv: sample-lv
size: 1g
force: yes
Untuk menggunakan LV yang dibuat ini, Anda harus memasang partisi itu di dalam sistem file. Hanya Anda yang dapat mengakses LV ini untuk menyimpan data. Di Ansible, gunakan filesystem modul untuk memformat perangkat blok apa pun dengan filesystem
. Setelah memformat, Anda memasang partisi di direktori mana pun. Anda dapat menggunakan mount modul di Ansible. Pastikan bahwa direktori (/data1
dalam contoh ini) ada sebelum menjalankan playbook.
Contoh:
- 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
Contoh: Seluruh pedoman:
---
- 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
Jalankan playbook ini dan periksa apakah LV Anda dibuat atau gunakan lvs
perintah.
Ingatlah bahwa salah satu fitur LVM adalah Anda dapat memperpanjang ukuran LV. Secara manual, Anda dapat menggunakan lvextend
memerintah. Di Ansible, Anda dapat menggunakan lvol modul untuk memperluas ukuran sample-lv .
Contoh:
- 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
Menggunakan lvextend
perintah atau lvol modul membantu Anda memperluas LV. Dalam lvol . ini volume, gunakan resizefs
parameter untuk memperbesar sistem file yang tidak terpasang yang terletak di perangkat.
Untuk mengecilkan ukuran LV, sintaksnya adalah sebagai berikut:
- 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
[ Butuh lebih banyak tentang Ansible? Ikuti kursus tinjauan teknis gratis dari Red Hat. Ansible Essentials:Kesederhanaan dalam Tinjauan Teknis Otomasi. ]
Selesai
Artikel ini menunjukkan kepada Anda cara mengonfigurasi LVM menggunakan buku pedoman Ansible sederhana. Daripada menggunakan buku pedoman sederhana, Anda dapat membuat peran , menggunakan proses dan modul yang sama seperti di atas. Ansible membantu Anda mengurangi tugas manual serta meningkatkan efisiensi untuk konfigurasi LVM. Menggunakan metode yang dijelaskan dalam artikel ini menyederhanakan operasi pada beberapa node terkelola.