Halo semuanya!
Pada artikel ini kita akan berbicara tentang bagaimana kita mengotomatiskan tugas memperluas ruang disk di salah satu server kami. Dan apa yang sulit dalam tugas sederhana sehingga saya harus mengotomatiskannya - Anda bertanya? Tidak ada apa-apa jika Anda tidak menggunakan mount bertingkat cascaded. Saya merasa ada lebih banyak pertanyaan !? Kalau begitu, mari kita pergi di bawah kucing.
Pertama, saya akan memberi tahu Anda mengapa kami menggunakan pemasangan kaskade terintegrasi.
Kami memiliki satu sistem yang memerlukan penyimpanan untuk file kecil (pemindaian dokumen, dll.). Ukuran file rata-rata adalah dari 200kb hingga 1 megabyte, datanya statis, tidak berubah. Ada miliaran file di dalamnya dan jumlahnya bertambah setiap hari. Suatu ketika, ketika volume sudah lebih dari 6TB, kami menyadari bahwa masalah akan segera dimulai, salah satunya adalah waktu pencadangan dan pemulihan. Kemudian kami memutuskan untuk membagi data menjadi disk, dan UnionFS dipanggil untuk membantu kami dalam hal ini.
Algoritma didefinisikan sebagai berikut: data ditulis ke disk tidak lebih dari 2TB, ketika berakhir kami menambahkan disk baru ke mesin virtual, tandai, tambahkan ke UnionFS, transfer yang lama ke ReadOnly, hapus salinan dari itu, tulis ke kaset, hapus dari cadangan online.
Seperti yang sudah Anda pahami, algoritme ini cukup menuntut perhatian administrator - gerakan dan penyimpanan yang canggung tidak tersedia. Oleh karena itu, kami memutuskan untuk mengecualikan faktor manusia sepenuhnya dan ingat bahwa kami memiliki ZABBIX, yang dapat menangani ini dengan sangat baik jika kami menambahkan sedikit sihir PowerShell dan Bash ke dalam algoritma.
Sekarang tentang bagaimana ini dilakukan.
Di Zabbix, pemicu untuk ruang kosong dikonfigurasikan dan tombol untuk mode manual dibuat:

Ketika pelatuk dipicu, tugas dibentuk di sheduler server-robot di mana semua skrip otomatisasi kami berada:
Powershell.exe "Enable-ScheduledTask \PROD_TASKS\Add_HDD_OS0226โ
Pada waktu yang ditentukan, sebuah skrip diluncurkan di server yang:
Menambahkan disk ke VM yang diinginkan:
(pada saat yang sama ia memilih volume paling bebas) $vm = Get-VM -Name $vmName New-HardDisk -VM $vm -CapacityGB $newHDDCapacity -Datastore $datastoreName โThinProvisioned
Pencarian untuk detail akses server:
OFFTopKami menggunakan repositori khusus untuk detail akses berdasarkan TeamPass, sehingga skrip menemukan server yang diinginkan dalam sistem dan menerima detailnya secara otomatis. Ini dilakukan karena setiap bulan kami secara otomatis mengubah semua kata sandi, tetapi ini adalah topik dari artikel yang terpisah
#Generate TeamPass API request string $vmTPReq = " TeamPass" #Send request to TeamPass $vmCreds = Invoke-WebRequest($vmTPReq) -UseBasicParsing | ConvertFrom-Json #Convert credentials $credential = New-Object System.Management.Automation.PSCredential($vmCreds.login,(ConvertTo-SecureString $vmCreds.pw -asPlainText -Force))
Datang pada SSH:
#Create partition & FS, mount disk to directory, edit fstab...etc. New-SSHSession -ComputerName $vmCreds.url -Credential $credential -Verbose -AcceptKey:$true $results = Invoke-SSHCommand -SessionId 0 -Command "/mnt/autodoit.sh" Remove-SSHSession -Index 0 -Verbose
Tandai dan tambahkan ke mount UnionFS:
Sayangnya, pada saat penulisan ini, kami tidak menyelesaikan beberapa masalah yang berkaitan dengan pembuatan tugas otomatis di VEEAM untuk pengarsipan disk lama dan menulisnya ke tape, jadi ini masih dilakukan secara manual. Tapi kami pasti akan memperbarui skrip segera setelah kami menyelesaikan beberapa masalah.
Diposting oleh Vitaliy
Rosman (
PBCVIT ).
Sepotong kode untuk menempelkan array dengan jujur โโdipinjam, tautan ke penulis disimpan dalam kode.
Tidak ada keluhan terhadap UnionFS, itu telah bekerja secara stabil selama lebih dari dua tahun.
Pertanyaan mengapa penyimpanan diatur secara umum umumnya retoris, terima saja apa adanya.
Harap dicatat bahwa berbagai jenis pemetaan drive harus digunakan untuk sistem yang berbeda. karena itu, berhati-hatilah dan kekuatan akan datang bersamamu.