×
PowerShell ile Windows Server'da Otomatik Disk Genişletme

PowerShell ile Windows Server’da Otomatik Disk Genişletme

Merhaba, bu yazımda sizlere PowerShell ile Windows Server’da Otomatik Disk Genişletme konusundan bahsedeceğim. Bir Windows admini olarak, sanal sunucularda disk doluluk oranlarının artması durumunda otomatik bir şekilde disk genişletme işlemi yapmak için kullanabileceğimiz yöntemler şu şekildedir:

Yöntem 1: PowerShell Script ile Otomasyon

PowerShell, Windows ve sanal makineleri (VMware veya Hyper-V) yönetmek için güçlü bir araçtır. Otomatik disk genişletme işlemi için PowerShell ile bir izleme ve müdahale sistemi kurabiliriz.

Adım 1: Disk Doluluk Oranlarını İzleme

İlk olarak, sanal sunucuların disk doluluk oranlarını belirli aralıklarla izlemek için bir PowerShell scripti yazabiliriz. Bu script, diskin doluluk oranını kontrol eder ve belirli bir eşik değeri aşıldığında otomatik olarak diski genişletir.

$threshold = 85 # %85 doluluk oranı
$drives = Get-PSDrive -PSProvider FileSystem

foreach ($drive in $drives) {
$usedPercentage = ($drive.Used / $drive.Size) * 100
if ($usedPercentage -ge $threshold) {Write-Host “Disk $($drive.Name) is $([math]::Round($usedPercentage, 2))% full.”
# Disk artırımı işlemi}
}

Bu basit script, disklerin doluluk oranını kontrol eder ve belirli bir eşik (örneğin %85) aşıldığında bir işlem yapılmasını sağlar.

Adım 2: VMware PowerCLI ile Disk Genişletme

Eğer sanal makineler VMware vSphere üzerinde çalışıyorsa, PowerCLI kullanarak sanal disk boyutlarını artırabiliriz. İlk olarak PowerCLI modülünü yükleyin ve vSphere ortamına bağlanın.

1. PowerCLI kurulumu

Install-Module -Name VMware.PowerCLI

2. vCenter’a bağlanın

Connect-VIServer -Server “vcenter-server”

3. Disk genişletme komutları

Örneğin, sanal makinenizin C diskinin doluluk oranı %85’e ulaştıysa, PowerCLI ile bu diski 10 GB artırabilirsiniz:

$vmName = “VM-Name”
$vm = Get-VM -Name $vmName
$hardDisk = Get-HardDisk -VM $vm -Name “Hard disk 1”

Set-HardDisk -HardDisk $hardDisk -CapacityGB ($hardDisk.CapacityGB + 10)

Bu komut, belirlenen sanal makinenin disk boyutunu 10 GB artırır.

Adım 3: Windows Üzerinde Partition Genişletme

Disk genişletme işlemi sanal ortamda yapılınca, işletim sistemi içinde de partition’ı genişletmek gerekir. Windows’da bu işlem için `diskpart` veya PowerShell’in `Resize-Partition` komutu kullanılabilir:

$disk = Get-Partition -DriveLetter C
Resize-Partition -PartitionNumber $disk.PartitionNumber -Size ($disk.Size + 10GB)

Adım 4: Sürekli İzleme ve Otomasyon

Bu işlemleri sürekli olarak takip etmek için bir görev zamanlayıcı (Task Scheduler) kullanarak PowerShell scriptini periyodik olarak çalıştırabilirsiniz. Örneğin, bu scripti her gün çalıştırarak disk doluluğunu kontrol edebilir ve otomatik disk artırımı yapabilirsiniz.

Raporlama ve Bildirim

İşlemin başarıyla tamamlanıp tamamlanmadığını izlemek ve raporlamak için script sonrasında bir rapor veya e-posta bildirimi gönderebilirsiniz:

Send-MailMessage -From “admin@domain.com” -To “admin@domain.com” -Subject “Disk Artırımı Tamamlandı” -Body “Disk başarıyla genişletildi.”

Yöntem 2: Hyper-V Disk Artırımı

Eğer Hyper-V kullanıyorsanız, benzer işlemleri Hyper-V PowerShell cmdlet’leri ile yapabilirsiniz.

$vm = Get-VM -Name “VM-Name”
$vmHardDrive = Get-VHD -VMId $vm.VMId -ControllerType IDE -ControllerNumber 0 -ControllerLocation 0
Resize-VHD -Path $vmHardDrive.Path -SizeBytes 120GB

Powershell Üzerinde Önemli Disk Komutları

PowerShell’de disk arttırma ve diskleri görüntüleme için kullanabileceğiniz bazı temel komutları şu şekildedir:

Diskleri Görüntüleme

1. Mevcut diskleri listelemek için

Get-Disk

Bu komut, sistemdeki tüm disklerin durumunu görüntüler.

PowerShell-ile-Windows-Serverda-Otomatik-Disk-Genisletme3 PowerShell ile Windows Server'da Otomatik Disk Genişletme PowerShell-ile-Windows-Serverda-Otomatik-Disk-Genisletme4 PowerShell ile Windows Server'da Otomatik Disk Genişletme

2. Hacimleri (volume) görüntülemek için

Get-Volume

Bu komut, tüm mevcut disk hacimlerini ve bunların durumlarını gösterir.

PowerShell-ile-Windows-Serverda-Otomatik-Disk-Genisletme2 PowerShell ile Windows Server'da Otomatik Disk Genişletme

3. Disk bölümlerini (partition) görüntülemek için

Get-Partition

Bu komut, mevcut disk bölümlerini görüntüler.

PowerShell-ile-Windows-Serverda-Otomatik-Disk-Genisletme1 PowerShell ile Windows Server'da Otomatik Disk Genişletme

Disk Arttırma

1. Bölümü genişletmek için

Resize-Partition -DiskNumber 0 -PartitionNumber 1 -Size 100GB

Bu komut, `DiskNumber 0` ve `PartitionNumber 1` olan diski 100 GB boyutuna genişletir. Disk numarası ve bölüm numarası sisteminize göre değişebilir.

2. Hacmi genişletmek için

Get-Volume -DriveLetter D | Resize-Partition -Size 100GB

Bu komut, `D:` sürücüsünü 100 GB boyutuna genişletir.

Bu komutların nasıl çalıştığına dair daha fazla görsel ve detaylı anlatım için aşağıdaki kaynak web sitelerini inceleyebilirsiniz.

Microsoft Storage

Yöntem 3: Windows Server Disk Yönetimi Otomasyonu

Bir başka yöntem de System Center Operations Manager (SCOM) veya Azure Automation gibi bir izleme ve yönetim aracını kullanarak sanal makinelerin disk izlemelerini otomatikleştirmek ve doluluk oranı yüksek olan makinelerde otomatik disk artırımı gerçekleştirmektir. Bu tür araçlar, ortamınızın tamamını izleyip merkezi bir yönetim sağlamaktadır.

Sanal sunucularda disk doluluk oranlarının artmasını önlemek ve otomatik olarak disk artırımı yapmak için PowerShell ve VMware PowerCLI gibi araçlar kullanarak bir otomasyon çözümü geliştirebilirsiniz. Bu çözüm hem izleme hem de müdahale işlemlerini kapsar ve tamamen otomatikleştirilebilir. Görev zamanlayıcı veya Azure Automation gibi araçlarla bu scriptlerin belirli aralıklarla çalıştırılması sağlanarak sürekli izleme ve otomatik genişletme yapabilirsiniz. bu yazımda sizlere PowerShell ile Windows Server’da Otomatik Disk Genişletme konusundan bahsettim. Faydalı olması dileğiyle.


 

Share this content:

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. Beykent Üniversitesi'nde Yönetim Bilişim Sistemleri Bölümü'nde yüksek lisans eğitimimi tamamladım. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde System Engineer pozisyonunda çalışmaktayım. Sektörde 20 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Şu an Yapay Zeka Yüksek Lisansı yapıyorum. Oldukça güzel projeler geliştiriyorum. Sayfanın en alt kısmından Linkedin profilime ulaşabilirsiniz. Bilgi ve tecrübemi hem bu blog üzerinde hem de Çözümpark Bilişim Portalı üzerinde paylaşıyorum.

Yorum gönder