Sebagai bagian dari seri LVM, kita telah melihat cara mengekspor dan mengimpor volume logis antara mesin yang berbeda di artikel sebelumnya. Pada artikel ini, kita akan melihat cara menggunakan ansible untuk mengotomatisasi pengaturan Logical Volume Manager (LVM) di Linux.
Ansible adalah alat otomasi sederhana dan mudah digunakan yang menawarkan berbagai modul untuk bekerja dengan manajemen disk di Linux. Ketika Anda memiliki lebih banyak mesin untuk menginstal dan mengkonfigurasi sistem operasi dengan konfigurasi yang sama, maka kemungkinan besar akan sangat berguna. Kasus penggunaan tertentu yang dapat saya pikirkan adalah ketika Anda sedang membangun sebuah cluster di mana semua server memiliki ruang penyimpanan yang sama dan membutuhkan skema partisi LVM yang sama. Membuat volume logis secara manual melibatkan 4 langkah. LANGKAH 1: Inisialisasi drive sebagai fisik volume.LANGKAH 2: Buat grup volume untuk volume fisik.LANGKAH 3: Buat volume logis dari grup volume.LANGKAH 4: Format volume logis dan pasang sistem file.
Untuk mempelajari cara melakukan 4 langkah di atas secara manual, lihat pengantar artikel LVM kami.
Linux Logical Volume Manager (LVM) Panduan Untuk Pemula
Konten
Mengumpulkan Informasi terkait Penyimpanan dari Fakta yang MemungkinkanPlaybook yang Memungkinkan untuk Membuat LVMMembuat Volume menggunakan Modul BerpartiBuat Volume Fisik dan Grup VolumeBuat Volume LogisPasang Volume LogisKesimpulanMengumpulkan Informasi terkait Penyimpanan dari Fakta yang Mungkin
Sebagai langkah pertama, Anda perlu mengumpulkan informasi terkait disk untuk host target. Ini adalah tugas yang berguna ketika Anda ingin memutuskan alokasi ruang secara dinamis.
Anda dapat melakukannya secara manual atau menggunakan mekanisme fakta yang memungkinkan yang mengumpulkan fakta terkait disk. Playbook di bawah ini akan mengambil informasi terkait disk dari host target.
--- - nama: Host penyiapan LVM: localhost koneksi: gathering_facts lokal: tugas sebenarnya: - nama: Kumpulkan statistik untuk perangkat keras ansible.builtin.setup: collect_subset: - perangkat keras - nama: Cetak keluaran stat untuk perangkat ansible.builtin.debug: var: hostvars[inventory_hostname].ansible_devices
Buku pedoman di atas pertama-tama akan mengumpulkan detail perangkat keras menggunakan modul penyiapan. Pada tugas kedua, output dari ansible_devices sendiri akan dicetak.
Anda selanjutnya dapat menerapkan semua jenis filter sesuai kebutuhan Anda untuk mendapatkan data spesifik dan menghitung nilai dinamis untuk pembuatan partisi baru. Misalnya, tugas di bawah ini akan mencetak semua perangkat yang dimulai dengan sd* dan ukurannya.
-name: Cetak ukuran disk hanya untuk disk sd ansible.builtin.debug: msg: "{{ ansible_devices[item].size } }" loop: "{{ ansible_devices.keys() | map('regex_search', 'sd.*') | select('string') | list }}"
Karena saya hanya memiliki satu disk, ia mencetak ukuran disk sda.
TASK [Cetak ukuran disk hanya untuk disk sd] *************************************** ******* ok: [localhost] => (item=sda) => { "msg": "931.51 GB" }Ansible Playbook untuk Membuat LVM
Saya akan menggunakan playbook berikut untuk demonstrasi. Anda dapat mereplikasi kode yang sama dengan mengubah nama disk dan ukuran partisi sesuai kebutuhan Anda. Saya akan memandu Anda melalui setiap tugas di buku pedoman dengan keluarannya di bagian berikutnya.
--- - nama: LVM Pengujian host: localhost menjadi: true collect_facts: Tugas palsu: - nama: Partisi /dev/sdd komunitas disk.umum .parted: perangkat: /dev/sdd nomor: 1 bendera: [ lvm ] status: sekarang part_end: 5GiB - nama: Tugas untuk komunitas PV dan VG.general.lvg: vg: ostechnixlab pvs: /dev/sdd1 - nama: Logis volume dengan ukuran 1GB community.general.lvol: vg: ostechnixlab lv: labpart1 ukuran: 1G - nama: Format volume dengan ext4 fs community.general.filesystem: fstype: ext4 dev: /dev/ostechnixlab/labpart1 - nama: Direktori target di bawah /opt/ ansible.builtin.file: path: /opt/lvm_test/ status: mode direktori: '0755' - nama: pasang lv di /data1 ansible.posix.mount: path: /opt/lvm_test/ src: / dev/ostechnixlab/labpart1 fstype: ext4 state: mountCreate Volume using Parted Module
Sebagai langkah pertama, Anda harus membuat volume dari raw disk dengan lvm sebagai tipenya. Anda dapat menggunakan seluruh disk atau lebih lanjut mempartisi disk dan hanya menggunakan partisi tertentu saja untuk LVM.
Ansible menggunakan modul parted untuk membuat partisi. Ini mirip dengan perintah parted di Linux yang digunakan untuk mengonfigurasi partisi perangkat.
Perhatian: parted dalam modul komunitas yang disertakan dengan ruang nama community.general. Jika Anda belum menginstal modul komunitas, instal menggunakan perintah di bawah ini.
$ ansible-galaxy collection install community.general
Saya memiliki disk /dev/sdd dengan ukuran 15GB.
$ lsblk /dev/sdd NAMA MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdd 8:48 0 15G 0 disk
I akan membuat partisi /dev/sdd1 berukuran 5GB. Tugas berikut menggunakan modul parted untuk mempartisi /dev/sdd1 sebesar 5GB dengan lvm sebagai type.
device: Berikan nama perangkat blok seperti /dev/sda, /dev/sdb etc.number: Jumlah partisi yang akan dibuat. Di sini diatur sebagai 1.flags: Ini menetapkan tipe untuk partisi Anda. Dalam hal ini, LVM.state: Menyetel status ke "present" akan membuat partisi.part_end: Ukuran untuk partisi.
-name: Partition /dev/sdd disk community.builtin.parted: device: /dev/ sdd number: 1 flags: [lvm] state: present part_end: 5GiB
Berikut adalah output untuk tugas di atas.
Jalankan perintah lsblk untuk memeriksa partisi.
$ lsblk /dev/sdd NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdd 8 :48 0 15G 0 disk └─sdd1 8:49 0 5G 0 partBuat Volume Fisik dan Grup Volume
Langkah selanjutnya adalah menginisialisasi /dev/sdd1 sebagai volume fisik dan menambahkannya ke grup volume. Gunakan modul lvg yang juga dikelola di bawah community.general namespace.
Tugas berikut akan menginisialisasi /dev/sdd1 sebagai volume fisik dan menambahkannya ke grup volume bernama ostechnixlab.
- name: Tugas untuk PV dan VG lvg: vg: ostechnixlab pvs: /dev/sdd1
Berikut adalah keluaran untuk tugas di atas.
Anda juga dapat menginisialisasi beberapa volume fisik dan menambahkannya ke grup volume.
- name: Tugas untuk PV dan VG lvg: vg: ostechnixlab pvs: /dev/sdd1, /dev/sdd2, /dev/sdd3
Anda juga dapat menentukan ukuran jangkauan. Secara default, ini diatur ke 4MB.
- name: Task for PV and VG lvg: vg: ostechnixlab pvs: /dev/sdd1, /dev/sdd2, /dev/sdd3 pesize: 8
Anda dapat memeriksa status grup volume dengan menjalankan perintah berikut.
$ sudo vgs ostechnixlab VG #PV #LV #SN Attr VSize VFree ostechnixlab 1 0 0 wz--n-Artikel Diperbarui pada: March 11, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani