Latar Belakang
Saya ingat saat itu adalah malam musim dingin yang indah, ketika tiba-tiba menjadi jelas bahwa ada masalah dengan Kerio Control.
Kerio Control tidak dapat menulis perubahan pada konfigurasi dan semacam kejahatan sedang terjadi!
Diagnosisnya cepat dan akurat - disk sistem Kontrol Kerio kehabisan ruang.
Pasalnya, kayu gelondongan tua yang besar.
Ada beberapa solusi:
- Hapus log
- Tingkatkan ruang disk sistem
- Tambahkan disk tambahan untuk log
Yang terakhir sepertinya yang paling logis.
Memang, kami tidak mencari cara yang mudah, tetapi kami berusaha melakukan pekerjaan itu dengan hati-hati, agar hal ini tidak terjadi lagi dan tidak ada yang dapat merusak malam indah lainnya.
Seorang pembaca artikel yang canggih akan segera mengatakannya - tetapi biarkan Kerio sendiri dapat membersihkan log dan menyimpan log dalam kerangka waktu yang ditentukan dengan baik.
Ya, dia bisa, tetapi log keluar dalam volume dari interval waktu yang ditentukan di server. Bagaimana menghadapi situasi ini?
Keputusan
Kerio Control Virtual Appliance adalah mesin virtual yang hidup di satu disk, solusinya tampak sangat sederhana:
- Tambahkan disk virtual tambahan di hypervisor
- Buat markup ext4 atau ext3
- Tambahkan pemasangan disk baru ke fstab
- Temukan file konfigurasi Kerio dan tentukan jalur baru untuk log.
TAPI TIDAK!
Dimulai dengan "Tambahkan pemasangan disk baru ke fstab", ada yang tidak beres.
Ternyata, Kerio tidak peduli dengan fstab.
Disk dipasang dengan sempurna secara manual, tetapi disk otomatis tidak menginginkan sesuatu setelah diluncurkan.
Setelah lama menelusuri direktori file untuk mencari sesuatu yang tidak diketahui, perhatian saya tertarik pada file 05basefs , yaitu, saya sangat menyukai inskripsi berikut - base dan fs , tetapi 05 sama sekali tidak tertarik. Setelah memeriksa isinya, saya menyadari bahwa sistem file dipasang di sini.
Kemudian semuanya tampak sederhana, lama ada file winroute.CFG, semua pengaturan disimpan di sana, Anda juga dapat menentukan jalur ke direktori dengan log di sana.
Tetapi ternyata, saya salah di sini, Kerio memperhatikan jalur baru di file konfigurasi, tetapi ada sesuatu yang tidak berfungsi, log setelah mengubah jalur membawa kesalahan atau tidak menampilkan apa pun.
Baiklah, mari kita pasang disk baru di lokasi log saat ini!
Penerapan
Setelah semua hal di atas, implementasinya sangat sederhana.
Pertama, kita perlu terhubung ke terminal Kontrol Kerio, cara termudah untuk melakukannya adalah menggunakan SSH.
Aktifkan sementara akses SSH.
Untuk melakukan ini, Anda perlu masuk ke panel admin dan pergi ke bagian "Status sistem" sambil menahan tombol Shift.
Jika Anda melakukan semuanya dengan benar, tombol aktivasi SSH akan muncul di bagian bawah di sebelah tombol restart server:
Aktifkan sementara SSH (jangan lupa untuk menonaktifkannya setelah mengatur!)
Setelah mengaktifkan SSH, Anda dapat terhubung ke server menggunakan klien SSH.
Lebih baik menggunakan klien yang dapat langsung menyalin file ke server, saya akan menjelaskan alasannya nanti.
Jadi apa yang kita miliki sekarang:
- Kami membuat dan menghubungkan disk baru ke server
- Menandainya di ext4 atau ext3
- Mengaktifkan SSH dan terhubung ke server
Selanjutnya, kita perlu memperbaiki file 05basefs yang terletak di jalur berikut . \ Etc \ boxrc.d \ 05basefs .
Tetapi sebelum Anda mengeditnya, Anda perlu melakukan dua hal lagi.
Yang pertama adalah mencari tahu dev disk baru untuk log.
Untuk mengetahui nama disk, jalankan lsblk dan dapatkan sesuatu seperti di
mana:
- SDA - disk sistem
- sda1 - bootloader
- sda2 dan sda3 - versi Kerio saat ini dan yang tampaknya sebelumnya
- sda4 - Var di sini konfigurasi dan log default
- SDB adalah disk baru kami
Jika kita perlu menyimpan log saat ini, kita perlu memasang sementara disk sdb di direktori kosong mana pun dan mentransfer konten / var / winroute / logs ke sdb yang terpasang.
Setelah transfer, lepaskan sdb.
Yang kedua adalah mengizinkan sistem file untuk mengubah file sistem
Kerio me-mount disk sistem di mana 05basefs berada dengan hak hanya-baca.
untuk melihat di mana dan bagaimana kami melakukan mount premoted
Anda dapat melihat bahwa / dev / sda2 berada dalam status RO , dan di situlah versi Kerio saat ini berada dan 05basefs juga ada. Aktifkan sementara
penulisan ke / dev / sda2 dengan perintah mount -o rw, remount / dev / sda2
Sekarang, Anda dapat memperbaiki file 05basefs, secara pribadi saya lebih suka menyalin file yang sudah dikoreksi, ini lebih mudah, karena setelah melakukan ini sekali, Anda harus mengulangi prosedur penggantian file setiap kali setelah memperbarui versi Kerio, karena 05basefs asli dipulihkan dengan versi baru.
Anda juga dapat menggunakan editor vi untuk mengubah file - itu ada di sistem.
Ubah 05basefs sebagai berikut
#!/bin/sh
# $Revision: 1.13 $
case "$1" in
start)
grep -q /tmp /proc/mounts || mount -t tmpfs tmp /tmp
mkdir -p /tmp/run
root=$(grep " / " /proc/mounts | grep -v rootfs | sed 's/ .*//')
DATA=${root%[23]}4
BOOT=${root%[23]}1
modprobe ext3
mount -o ro -t ext3 $BOOT /boot
if [ ! -z "$DATA" ] && ! mount -o data=ordered $DATA /var 2>/dev/null; then
echo "Creating new data partition..."
#mkfs.nilfs2 -b 1024 $DATA
mkfs.ext3 -b 4096 -q $DATA 2>&1
tune2fs -c 0 -i 0 -r 0 -E stride=512,stripe-width=512 $DATA
fsck -p $DATA
mount -o data=ordered $DATA /var
[ -d /var.default ] && cp -a /var.default/* /var
elif [ -f "/var.default/update.list" ]; then
for i in `cat /var.default/update.list`; do
[ -e "/var.default/$i" -o -h "/var.default/$i" ] || continue
! [ -e "/var/$i" -o -h "/var/$i" ] || continue
mkdir -p $(dirname "/var/$i")
cp -a "/var.default/$i" "/var/$i"
done
fi
mount -t ext4 /dev/sdb /var/winroute/logs
exit 0
;;
stop)
echo "Umounting data partition..."
for i in $(seq 1 10); do
if fuser -sm /var; then
sleep 1
else
break
fi
done
fuser -kms /var/winroute/logs
umount /var/winroute/logs
fuser -kms /var
umount /var
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
Penjelasan tentang perubahan dalam file
mount -t ext4 / dev / sdb / var / winroute / logs
mounts sdb pada jalur log asli / var / winroute / logs
fuser -kms / var / winroute / logs
umount / var / winroute / logs
Unmounts sdb untuk mengoreksi mematikan server.
Sekarang kita akan mengembalikan sda2 ke keadaan semula dengan perintah mount -o r, remount / dev / sda2
Setelah server reboot, Kerio akan menulis log ke disk SDB khusus kita.
Kruk
(lagipula, Anda tidak dapat melakukannya tanpa kruk)
Seperti yang saya nyatakan sebelumnya, jika versi Kerio diperbarui, file 05basefs akan kembali ke keadaan semula, Kerio akan mulai menulis log ke sda4 lagi. Di sepanjang jalur / var / winroute / logs.
Agar Kerio dapat terus menulis log ke SDB, Anda harus mengulangi prosedur penggantian file.