Canlı Verinin Aktığı Disk Alanını Genişletme (LVM Extend Desteklenmediği Durumlar için)
Ne Öğreneceğim
- Linux işletim sisteminde disk ekleme, dosya tipi yapılandırması, mount-umount işlemleri, /etc/fstab klasörünün güncellenmesi
- Bir dizini ve dizinin içindeki tüm veriyi, içindeki yetkilendirmeleri değişmeden, genişletilmiş diğer diske aktarımı.
Gereklilikler
- Linux işletim sistemi
Zorluk Derecesi
- Orta Düzey
Eğitim İçeriği
Linux Uzerinde çalışan bazı programlar (örn: Qradar gibi bazı SIEM ürünleri) LVM Extend fasilitesini desteklememektedir. Burada disk artırımı için sistem yeniden kurulması yerine daha kısa işlem gerektirecek bir yöntem daha denenebilir. Bu yöntemi anlatmaya çalışacağım.
Çalışan bir sistemde yapısal değişiklik yapmadan önce yapılması gerekenleri yapıp gemimizi sağlam kjazığa bağlamış olalım. bunun için öncelikle:
- Geri dönüş ve kurtarma planı için ilgili sistemin configuration ve data backup’lari alınır. Hangi version ve hangi patch’lerin yuklu olduğu bilgileri kaydedilir.
- Sanal makine ise hızlı ve sağlıklı dönüş için çalışma öncesi clone alınması iyi olacaktır. Disk ekleme ve verileri başka diske mount etme işlemi olduğu için snapshot yerine clone tercih edilmesi uygun olacaktır. snapshot sadece diskteki değişiklikleri (delta file) kaydetmektedir. Biz yeni disk ekleyip verileri oraya kaydedeceğiz.
- Clone izole ortama alınıp clone üzerinde çalışılması daha uygun olacaktır.
Çalışmamıza geçecek olursak:
Amacımız: Ariel database’inin bulunduğu ve canlı verilerin aktığı /store dizinini,içindeki verilere bir şey olmadan bulunduğu küçük boyutlu /dev/sda1 diskinden unmount ederek yeni eklediğimiz /dev/sdb1 dizinine mount etmek.
ADIMLAR
1-) Test ortamı için linux makine canlandırılması: 1gb ram, 2core cpu, 20gb disk boyutu, redhat 5.7 işletim sistemine sahip bir sunucunun oluşturulması. Canlı sistemdeki gibi /store, /store/tmp ve /store/transient dizinlerinin farklı dosya sistemi ve farklı disklere mount edilecek şekilde oluşturulması.
2-) Bu adımda /store , /store/transient ve /store/tmp dizinlerini farklı disklere mount ediyoruz. (bu adımları disk artırma işlemini yapacağımız sistemin başlangıç (initial) haline gelebilmek için yaptık. O yüzden bu adımdaki işlem detaylarını kafa karıştırmaması açısından dökümana eklemiyorum. Detay isterseniz komutları sorabilirsiniz)
Sistemimizin son hali : (başlangıç hali de diyebiliriz. Disk artırımına bu yapidaki bir sistemde başlayacağız)
Evet mevcut durumda taşınacak 3 hassas verimiz var.
/store >>> /dev/sdb1 diski üzerinde
/store/tmp >>> /dev/sdb2 üzerinde
/store/transient >>> /dev/sdb3 üzerinde
3-) Yeni Disk Ekleme
Evet, asıl işleme geldik.
Vmware üzerinden sanal makinemize scsi disk ekliyoruz. Yeni diski görebilmek için “partprobe” komutunu çalıştırmak yada sistemi reboot etmek gerekir. Bu işlemlerden sonra fdisk -l komutunu çalıştırırsak:
Henüz bir dosya tipine dönüştürülmemiş ve bir yere mound edilmemiş /dev/sdc diskimizi görüyoruz. Bu diski 3 parçaya böleceğiz.
/fdisk /dev/sdc komutuyla işleme başlayabiliriz.
Burdaki seçeneklerden “n” parametresiyle yeni partition eklemeyi seçeriz. “p” primary seçtikten ve partition numarası verdikten sonra boyutunu belirterek yeni bir partition oluşturabiliriz. Bunu işlemi 3 defa tekrarladığımızda diskimizi /dev/sdc1 /dev/sdc2 ve /dev/sdc3 şeklinde 3e bölmüş oluruz.
Böldüğümüz bu diski belirli bir dosya tipine(ext2, ext3,ext4,xfs vb) formatlamamız gerekli.
mkfs.ext3 /dev/sdb1
mkfs.ext3 /dev/sdb2
mkfs.ext3 /dev/sdb3
Komutlarıyla 3 ayrı yeni diskimizi oluşturmuş olduk.
Şimdi sıra geldi canlı verimizi buraya taşımaya. Burada dikkat etmemiz gereken nokta:
1-) Taşıma esnasında uygulamanın servislerini durdurmak.
2-) Yeni alana cp değil mv (yada rsync) komutuyla taşımak. Bunun nedeni mv ile dosya haklarının da aynı şekilde aktarılıyor olması.
3-) Verileri taşıdıktan sonra vi /etc/fstab dosyasında kayıtları girmek. Böylece sistem reboot olduğunda yaptığımız ayarlar silinmeyecektir.
- cd /
- mkdir /store2
- mkdir /store2/tmp
- mkdir /store2/transient
- mount /dev/sdc1 /store2
- mount /dev/sdc1 /store2/tmp
- mount /dev/sdc1 /store2/tmp/transient
klasörlerimizi oluşturduk ve mount ettik. - mv /store/tmp/* /store2/tmp
- mv /store/transient/* /store2/transient
- mv /store/* /store2
verilerimizi /dev/sdc diskine taşımış olduk.
şimdi
- vi /etc/fstab
bu dosyayı editleyerek aşağıdaki hale getiriyoruz:
- mount -a
bu komut diskleri tek tek mount etmek yerine fstab dosyasına göre hepsini mount eder. (Linux sistemlere reboot olurken de mount -a komutu çalışır. bu yüzden fstaba kaydolmamış mount işlemleri reboottan sonra kaybolur.)
eğer mount -a komutunda hata alırsanız reboot deneyebilirsiniz.
işlem sonunda son durum:
Test için attığımız verilerin de başarılı bi şekilde, dosya yetkilendirmeleri değişmeden aktarılmış olduğunu görüyoruz:
Uygulamanın servislerini tekrar çalıştırabiliriz. Artırılmış diskinizi uzun süre kullanmanız dileğiyle.
Posted on Utopian.io - Rewarding Open Source Contributors
@ahka, Like your contribution, upvote.
Thank you :)
Thank you for the contribution. It has been approved.
torvalds/linux
You can contact us on Discord.
[utopian-moderator]
it has been changed. Thank You.
Hey @ahka I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x