Mirror (Was: Re: [id-ubuntu] Re: OOT:list repo?)

11 views
Skip to first unread message

Fajran Iman Rusadi

unread,
Oct 3, 2007, 12:07:14 PM10/3/07
to id-u...@googlegroups.com
On 10/3/07, Rafeequl <rafe...@gmail.com> wrote:

> Biar tambah OOT
> Waktu saya update dari FF ke GG, pertama kali nyoba pake mirror ID, ada
> errornya tuh, kalo gak salah wktu ngedownload linux-header yang 2.6.22 ,
> trus coba ganti pake main server, lancar2 aja.
> Emang kalo mirror ubuntu itu ga otomatis ngikut main servernya ? thx
>

biar gak oot, ganti topik sekalian ya..

Main server pastilah yg paling akurat. Dari namanya juga udah server
utama. Server yang jadi master. Tugas mirror lah yang menyalin isi
server utama tersebut.

Kalau gw ngeliat2 dokumentasi ttg mirroring debian, mirror itu ada 2
jenis, yaitu push mirror dan pull mirror.

- Push mirror itu di-trigger dari server pusat. Jadi kalau server
pusat mengalami perubahan, maka dia akan memberitahu seluruh push
mirror agar mengupdate contentnya. Artinya server pusat yang aktif
untuk urusan update content.

- Sedangkan jenis yang kedua, yaitu pull mirror, server mirror yang
aktif untuk mengupdate content. Biasanya proses update dilakukan
secara periodik, misalnya dalam 1 hari melakukan 2 kali sinkronisasi
yaitu pada jam 12 malam dan 12 siang.

Nah, kalau kambing.ui.edu itu menjadi pull mirror saja supaya waktu
download bisa diatur sendiri karena proses download hanya dilakukan di
malam hari ketika koneksi internet tidak dipakai untuk kerja. Jika UI
punya dedicated bandwith untuk mirroring, mungkin saja download bisa
dilakukan kapan saja sehingga layak menjadi push mirror.

Proses download ini sering menjadi masalah bagi kita di indonesia yang
koneksi ke luar negerinya cenderung kurang baik. Jika ada update besar
di server utama (misalnya tiba2 repository Hardy Heron muncul), maka
server mirror harus mendownload content yang sangat besar tersebut
(untuk Ubuntu bisa sampai 60 GB!). Proses download sampai komplit ini
bisa dilakukan sampai berhari-hari mengingat besarnya data yang harus
di download. Pada masa-masa ini, ketelatan mirror thd server utama
bisa besar. Namun setelah proses ini komplit, maka proses sinkronisasi
berikutnya bisa dilakukan dengan cepat karena tidak banyak data yang
harus di download.

Khusus untuk mirror debian dan ubuntu, ada satu direktori yang berisi
timestamp kapan proses mirror terakhir dilakukan. Sepertinya direktori
ini hanya konvensi saja sehingga tidak semua mirror memilikinya.
Direktori yang dimaksud ada di /project/trace/

Coba lihat isi direktori berikut.
- http://id.archive.ubuntu.com/ubuntu/project/trace/
- http://kambing.ui.edu/ubuntu/project/trace/
- http://dl2.foss-id.web.id/ubuntu/project/trace/

Di situ bisa kelihatan server-server mana saja yang "dilalui" selama
proses mirror. Seharusnya, setiap server mirror meletakkan satu buah
file di sana yang bernama nama server ybs.

Kalau dilihat di 3 URL di atas, bisa dikira2 kalau kambing.ui.edu dan
dl2.foss-id.web.id terakhir kali melakukan sinkronisasi pada tanggal 3
Oktober 2007 yang artinya cukup up to date. Sedangkan
id.archive.ubuntu.com terakhir kali melakukan sinkronisasi pada
tanggal 24 September 2007 yang artinya sudah telat 1 minggu lebih.

Tidak semua mirror ubuntu/debian menyimpan data ini, contohnya adalah
http://buaya.klas.or.id/ubuntu/project/trace/ yang hanya menyimpan
timestamp dia sendiri. Namun ini sudah cukup untuk memberi tahu user
kapan terakhir kali mirror tersebut diupdate.

Lalu, spesifik untuk repository ubuntu/debian, isi direktori
repository secara umum dapat dibagi dua, yaitu /dists/ dan /pool/. Isi
direktori /dists/ adalah index atau daftar isi dari seluruh paket yang
ada. Sedangkan isi dari direktori /pool/ adalah paket-paket *.deb.
Dari segi ukuran, tentu saja isi /pool/ yang lebih besar, jauh lebih
besar.

Kalau membaca script mirror yang diberikan oleh Debian, teknik
mirroring yang disarankan adalah melakukan sinkronisasi direktori
/pool/ terlebih dahulu baru tanpa melakukan penghapusan file apapun
setelah itu dilakukan sinkronisasi keseluruhan (termasuk isi direktori
/dists/ dan menghapus file yang sudah tidak ada di server utama). Hal
ini dimaksudkan agar index tetap terjaga walaupun file deb sudah
berubah. Sehingga isi index tetap sinkron dengan file-file *.deb yang
dimiliki. Andai seluruh file *.deb yang terbaru sudah dimiliki, maka
index diubah dan file-file *.deb yang sudah tidak ada di server utama
dapat dihapus dari mirror.

Satu hal yang sering terjadi jika strategi di atas tidak dilakukan
adalah ketika file index sudah berubah, file-file *.deb yang ada belum
sinkron. Sehingga bisa saja ada file yang ditunjuk oleh file index
yang baru belum selesai di download. Sehingga user akhirnya berhadapan
dengan pesan error: file not found.

Nah.. apakah sudah terbayang hal-hal dibalik proses mirroring?

Sekian aja kalo gtu.. mudah2an berguna :)

dan berhubung tulisan ini banyak banget, rasanya sayang kalo gak
ditulis di blog juga. ehehehhe..

--
Iang-
http://fajran.web.id y!m: fajran

Fajran Iman Rusadi

unread,
Oct 3, 2007, 12:15:05 PM10/3/07
to id-u...@googlegroups.com
On 10/3/07, Fajran Iman Rusadi <faj...@gmail.com> wrote:

> Satu hal yang sering terjadi jika strategi di atas tidak dilakukan
> adalah ketika file index sudah berubah, file-file *.deb yang ada belum
> sinkron. Sehingga bisa saja ada file yang ditunjuk oleh file index
> yang baru belum selesai di download. Sehingga user akhirnya berhadapan
> dengan pesan error: file not found.

Sekedar tambahan, ada salah satu trik untuk mensiasati masalah ini
tanpa harus mengganti repo ke mirror yang lain. Kalau ganti mirror kan
artinya harus download file index lagi yg lumayan besar sampai 3MB..

Saat error ditampilkan, biasanya apt-get memberikan daftar URL file
yang tidak ada. Copy daftar tersebut lalu ubah hostname menjadi mirror
lain atau bahkan server utama. Download file-file tersebut lalu copy
ke direktori /var/cache/apt/archives. Setelah itu, lakukan lagi
apt-get nya :)

- Misalnya URL file yang tidak ada adalah
http://kambing.ui.edu/ubuntu/pool/b/blankon/blankon-artwork.deb

- Maka, ubahlah kambing.ui.edu menjadi archive.ubuntu.com sehingga URL
baru adalah
http://archive.ubuntu.com/ubuntu/pool/b/blankon/blankon-artwork.deb

- Salin/pindahkan file blankon-artwork.deb ke /var/cache/apt/archives/

- Ulangi lagi proses instal/upgrade nya..

Mengapa bisa begitu? Jika kita menggunakan repository yang menggunakan
http atau ftp (ada yg lain ngga ya?), maka sebelum di-instal,
file-file yang dibutuhkan akan dicopy ke /var/cache/apt/archives. Jika
proses download ini berhenti di tengah jalan, maka saat proses
selanjutnya file tidak akan didownload dari awal karena sebagian sudah
di download. Artinya, selama ada file yang tepat di
/var/cache/apt/archives, maka proses download tidak akan dilakukan.

Yanuar NH

unread,
Oct 3, 2007, 5:00:03 PM10/3/07
to id-u...@googlegroups.com

puuf...mantab bro  penjelasannya.
*SOL


Gunawan

unread,
Oct 4, 2007, 2:22:20 AM10/4/07
to id-u...@googlegroups.com
On 10/3/07, Fajran Iman Rusadi <faj...@gmail.com> wrote:
> Sekedar tambahan, ada salah satu trik untuk mensiasati masalah ini
> Iang-
> http://fajran.web.id y!m: fajran

mas fajran ini makannya apa sih? :)
thanks utk penjelasannya, berguna sekali.
*G

Reply all
Reply to author
Forward
0 new messages