Skip to content

Pindah Folder Besar ke Block Storage dengan Symlink

Adityo Guni Waluyo

Folder cadangan 14G memenuhi root disk. Pola pindah ke block storage dengan symlink menyelesaikan tekanan disk tanpa menghapus data cadangan.

Ringkasan

Disk root bengkak 95 persen gara-gara folder backup plugin gambar WordPress segede 14GB. Jangan dihapus, cukup dipindah ke block storage pakai rsync, verifikasi dulu jumlah filenya, terus foldernya ditukar symlink path absolut. Jangan lupa set mount otomatis di fstab atau systemd, soalnya kalau reboot tanpa itu, symlinknya jadi dangling link.

Monitor server menunjukkan penggunaan disk root di angka 95 persen. Audit dengan du menemukan penyumbang terbesarnya: folder cadangan gambar milik plugin optimasi gambar WordPress dengan ukuran 14 gigabita. Resolusinya tidak berhenti pada pembersihan. Folder itu dipindahkan utuh ke block storage, dan root disk kembali turun ke 44 persen.

Refleks pertama saat disk penuh biasanya menghapus folder terbesar. Langkah itu salah untuk folder cadangan. Isinya masih dibutuhkan saat pemulihan, dan dokumentasi resmi plugin memperingatkan untuk tidak pernah bergantung sepenuhnya pada cadangan internal plugin [6]. Keputusan yang benar adalah memindahkan data, bukan menghapusnya. Pola ini berlaku umum untuk folder lain yang membengkak: cadangan basis data, arsip log, atau unggahan media.

Mekanisme yang membuat trik ini sah ada di level filesystem. Sebuah symlink adalah berkas yang isinya berupa string pathname menuju berkas lain, dan symlink boleh menunjuk direktori serta melewati batas filesystem [2]. Pohon direktori Unix juga memang dapat tersebar di beberapa perangkat; perintah mount-lah yang menyatukan filesystem dari perangkat lain ke dalam satu pohon [4]. Dua fakta inilah yang membuat aplikasi bisa terus membaca jalur lama sementara datanya fisik berada di volume terpisah.

Sebelum memutuskan memindahkan, pastikan folder besar itu memang aman dipindah. Cadangan gambar dan arsip log aman dipindah saat server berjalan; berkas yang sedang ditulis proses lain tidak. Perintah lsof memeriksa proses yang masih memegang berkas di dalam folder saat pemindahan berlangsung.

Audit dan Persiapan Volume

Langkah awal tetap audit. Catat ukuran total dan jumlah berkas folder sumber sebagai baseline, lalu pastikan volume block storage sudah tersedia dan ter-mount. Sistem menoleransi mount point di lokasi mana pun karena seluruh pohon direktori dapat tersebar di beberapa perangkat [4].

Pemindahan dengan rsync dan Verifikasi

Bentuk perintahnya sebagai berikut, dengan path contoh yang disesuaikan:

du -sh /var/www/html/wp-content/ewww
df -h /
rsync -a /var/www/html/wp-content/ewww/ /mnt/blockstorage/ewww/
find /mnt/blockstorage/ewww/ -type f | wc -l
mv /var/www/html/wp-content/ewww /var/www/html/wp-content/ewww.old
ln -s /mnt/blockstorage/ewww /var/www/html/wp-content/ewww

Pindahkan isi folder dengan rsync -a. Opsi arsip menyalin tautan, perangkat, pemilik, grup, dan izin akses secara utuh [1]. Fitur quick check rsync hanya mentransfer berkas yang ukuran atau waktu modifikasinya berubah, sehingga menjalankan ulang proses yang terganggu itu murah [1].

Setelah salinan selesai, bandingkan ukuran total dan jumlah berkas di tujuan dengan baseline. Verifikasi ini wajib sebelum folder sumber disentuh. Jangan hapus folder sumber sebelum angkanya cocok; pada kasus ini folder sumber tidak dihapus, hanya ditukar posisinya.

Perhatikan juga kepemilikan berkas. Opsi arsip rsync sudah membawa serta pemilik dan grup asli, sehingga tidak ada penyesuaian chown tambahan ketika pemindahan dijalankan sebagai pengguna yang sama dengan pemilik berkas lama. Bila dijalankan sebagai pengguna lain, sesuaikan kepemilikan di lokasi baru sebelum menukar folder, agar aplikasi tidak kehilangan akses tulis.

Setelah verifikasi lolos, ganti nama folder asli, lalu buat tautan ke lokasi baru dengan ln -s. Path absolut lebih aman untuk tautan lintas volume karena tautan relatif diinterpretasikan relatif terhadap direktori induk tautannya [3].

Uji aplikasi membaca dan menulis melalui tautan. Pada kasus ini aplikasi WordPress membaca jalur wp-content/ewww tanpa sadar isinya kini berada di block storage.

Volume baru harus ter-mount otomatis saat boot. Konfigurasinya bisa lewat /etc/fstab atau unit .mount systemd; unit mount dinamai sesuai direktori mount point yang dikendalikannya [5]. Tanpa ini, server yang reboot akan bangun dengan symlink menunjuk ke path yang tidak ada, yang dikenal sebagai dangling link [2]. Aplikasi membaca jalur lama dan gagal karena target tautan belum ter-mount.

Pola pindah-ke-volume-plus-symlink ini menyelesaikan disk penuh tanpa mengorbankan data cadangan. Kuncinya tiga: verifikasi sebelum menukar, path absolut untuk tautan lintas volume, dan persistensi mount yang diuji dengan reboot.

Sumber

  1. rsync(1) - Linux manual page
  2. symlink(7) - Linux manual page
  3. ln(1) - Linux manual page
  4. mount(8) - Linux manual page
  5. systemd.mount
  6. Local Compression Options - EWWW IO Support

Artikel terkait