VMware vCenter Server’ın VAMI (vCenter Server Appliance Management Interface) üzerinden alınan yedekler kritik altyapıların sürekliliği için oldukça önemlidir.
Özellikle SFTP tabanlı backup mekanizması verilerin harici bir dosya sunucusunda güvenli şekilde saklanmasını sağlar.
Ancak bazı ortamlarda VAMI Backup işlemi sırasında şu hata ile karşılaşılabilir:
Failed to create backup directory on backup server.
Bu makalemde söz konusu hatanın nedenlerini, log incelemelerini, etkilenen ortamları ve geçici çözüm yöntemini detaylıca ele alacağız.
Backup işlemi başarısız olduğunda /var/log/vmware/applmgmt/backup.log dosyasında şu hatalar görülür:
[MainProcess] ERROR: Parent dir sftp://BACKUPFQDN/folder/folder create failed. RC: 21 Err: curl: (21) mkdir command failed: Operation failed
[BackupManager] ERROR: Failed to create backup directory Parent dir sftp://BACKUPFQDN/folder/folder create failed
Daha detaylı log çıktılarında ise şu ifadeler öne çıkar:
[SftpStorageIOLib::mkdir] ERROR: Parent dir sftp://xxxxxx/vCenter create failed. RC: 21 Err: curl: (21) mkdir command failed: Permission denied
[BackupManager] ERROR: BackupManager encountered an exception: Failed to create backup directory on backup server.
Ek olarak şu satırlar sunucuya erişim sırasında yetkilendirme sorunları yaşandığını gösterir:
[SftpStorageIOLib::_authorizeLocalHost] ERROR: Failed to authorize local host with command sshpass ...
Sonuç olarak backup işlemi başlamadan hata alır ve “backup job failed” mesajı loglara yazılır.
Bu sorunun temelinde SFTP erişim izinleri ve backup betiğinde yapılan değişiklikler yer almaktadır:
- Backup script değişikliği:
- Yeni sürümlerde FTP/SFTP backup scripti parent directory (üst klasör) üzerinde yetki denetimi yapıyor.
- Eğer backup kullanıcısının root dizinde izinleri yoksa alt klasörlere erişimi olsa bile işlem başarısız oluyor.
- Eksik yetkiler:
- SFTP sunucusunda backup kullanıcısına gerekli yetkiler tanımlanmadığında, dizin oluşturma (
mkdir) komutu başarısız oluyor.
- SFTP sunucusunda backup kullanıcısına gerekli yetkiler tanımlanmadığında, dizin oluşturma (
Parent directory üzerinde “Permission denied” hatası alınarak backup işlemi sonlandırılıyor.
Backup Script Düzenlemesi
Hatanın geçici olarak aşılması için FtpStorageIOLib.py dosyasında ufak bir değişiklik yapılması gereklidir.
Adımlar:
- Dosyanın yedeğini alın:
cp /usr/lib/applmgmt/backup_restore/py/vmware/appliance/backup_restore/plugins/FtpStorageIOLib.py /root/FtpStorageIOLib.py - Dosyayı düzenleyin (vi ile açın):
vi /usr/lib/applmgmt/backup_restore/py/vmware/appliance/backup_restore/plugins/FtpStorageIOLib.py dir_existsfonksiyonunda şu satırı bulun:if cmd_res.returncode == 0: return True- Aşağıdaki şekilde değiştirin:
if (cmd_res.returncode in [0, CurlEC.REMOTE_ACCESS_DENIED]): return True🔹 Bu sayede parent directory üzerinde erişim reddedilse bile alt klasörlerin kullanılmasına izin verilecektir. - Kaydedin ve çıkın:
:wq!
SFTP Sunucusu Üzerinde Yetki Kontrolü
- Backup kullanıcısının ilgili path üzerinde okuma/yazma (read/write) izinleri olduğundan emin olun.
- Root directory erişimi zorunlu olmasa bile backup path olarak kullanılan klasörde tam yetki tanımlanmalıdır.