Gentoo Logo

Aturan dan Panduan Mirror rsync Gentoo Linux

Daftar Isi:

1.  Pendahuluan

Istilah, nama, dll

Panduan ini ditujukan bagi para pengguna yang ingin memiliki mirror rsync sendiri. Tidak hanya untuk mirror rsync resmi, tetapi juga untuk mirror pribadi.

Terdapat tiga jenis mirror rsync Gentoo: mirror rotasi utama, mirror komunitas dan mirror pribadi. Mirror rotasi utama diurus oleh tim infrastrukur Gentoo. Mereka menangani lalu-lintas rsync Gentoo. Mirror komunitas adalah mirror yang dijalankan oleh para sukarelawan dari komunitas Gentoo. Mirror pribadi adalah mirror yang dijalankan oleh perorangan yang tertutup untuk umum dan dibuat untuk menghemat bandwidth di jaringan organisasi atau perorangan.

Untuk saat ini, kami sudah memiliki banyak mirror komunitas dan masih terus mencari mirror rotasi utama. Spesifikasi untuk server rotasi utama adalah:

  • Minimal prosesor Pentium 4 2GHz (atau yang setara)
  • Minimal RAM 1GB (idealnya 1.5GB - 2GB)
  • Ruang harddisk sebesar 10GB(IDE juga boleh)

Server-server ini bisa anda sumbangkan bersama bandwidth dan ruang lokasinya jika anda memilikinya. Jika tidak, kami dapat menyediakan bandwith dan anda hanya perlu mengantarkan komputer tersebut ke fasilitas lokasi kami. Penggunaan bandwidth rata-rata pada mirror rotasi untuk saat ini adalah ~7Mbps (sekitar 2 TB per bulan). Karena jumlah mirror rotasi semakin bertambah, maka jumlah konsumsi bandwidth juga akan semakin berkurang.

Jika anda ingin menyumbangkan komputer anda, silakan email Admin Mirror bersama informasi lengkap.

2.  Mensetup mirror rsync lokal

Pendahuluan

Banyak pengguna yang menjalankan Gentoo pada banyak komputer dan perlu mengsinkronkan pohon portage pada kesemuanya. Menggunakan mirror publik jelas-jelas merupakan penyia-nyiaan bandwidth pada kedua sisi. Mengsinkronkan satu komputer dengan mirror publik lalu mengsinkrokan semuanya dengan komputer tersebut akan menghemat tenaga mirror Gentoo juga menghemat bandwidth anda.

Hal tersebut juga berlaku untuk organisasi yang ingin mengendalikan mirror rsync yang digunakan oleh server dan workstation mereka. Tentunya, mereka juga ingin menghemat bandwidth.

Yang perlu anda lakukan adalah memilih komputer mana yang akan dijadikan mirror rsync lokal dan men-setup-nya. Anda harus memilih komputer yang dapat menangani beban CPU dan disk yang dibutuhkan oleh operasi rsync. Mirror lokal anda juga harus selalu siap kapanpun komputer lain ingin mengsinkronkan pohon portage-nya. Selain itu, komputer ini juga harus memiliki alamat IP tetap atau nama yang selalu di-resolve ke server anda. Konfigurasi DHCP dan/atau server DNS tidak dijelaskan di panduan ini.

Perlu dicatat bahwa petunjuk-petunjuk di sini menganggap mirror rsync pribadi anda adalah komputer Gentoo. Jika anda ingin menggunakan distro lain, panduan untuk men-setup mirror komunitas mungkin lebih sesuai. Yang penting, jangan singkronkan mirror setiap setengah jam, tetapi cukup sekali atau dua kali sehari.

Men-setup server

Tidak ada paket lain yang anda butuhkan karena semua software telah terinstal di komputer anda. Men-setup mirror rsync lokal hanyalah mengkonfigurasi daemon rsyncd agar direktori /usr/portage anda tersedia untuk komputer lain. Ciptakan file konfigurasi /etc/rsyncd.conf berikut ini:

Daftar Kode 2.1: Contoh /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
max connections = 5
use chroot = yes
uid = nobody
gid = nobody
# Opsional: perketat akses ke ke komputer Gentoo anda
hosts allow = 192.168.0.1 192.168.0.2 192.168.1.0/24
hosts deny  = *

[gentoo-portage]
path=/usr/portage
comment=Gentoo Portage
exclude=distfiles/ packages/

Anda tidak perlu menggunakan opsi hosts allow dan hosts deny. Secara default, semua klien diijinkan. Urutan penulisan opsi-opsi tidak penting. Server akan selalu memeriksa opsi hosts allow pertama kali lalu mengijinkan koneksi jika komputer yang melakukan koneksi cocok dengan yang tercantum dalam opsi tersebut. Server kemudian akan memeriksa opsi hosts deny dan menolak koneksi jika ada kecocokan yang ditemukan. Semua komputer yang tidak cocok dengan keduanya akan diijinkan. Bacalah halaman manual (man rsyncd.conf) untuk info lebih lanjut.

Sekarang, jalankan daemon rsync anda dengan perintah berikut sebagai root:

Daftar Kode 2.2: Menjalankan daemon rsync

(Jalankan daemon sekarang)
# /etc/init.d/rsyncd start
(Tambahkan daemon ke runlevel default)
# rc-update add rsyncd default

Sekarang cobalah mirror rsync anda. Anda tidak perlu mencoba dari komputer lain, tetapi baik juga jika anda lakukan. Jika nama server anda tidak dikenal oleh komputer lain, anda dapat menggunakan alamat IP-nya.

Daftar Kode 2.3: Mencoba mirror

(Anda boleh menggunakan nama server atau IP-nya)
# rsync 192.168.0.1::
gentoo-portage     Gentoo Portage
# rsync your_server_name::gentoo-portage
(Anda seharusnya melihat isi /usr/portage di mirror anda)

Mirror rsync anda sekarang sudah siap. Jalankan saja emerge --sync seperti biasa untuk meng-update server anda. Jika anda menggunakan cron atau fasilitas serupa untuk melakukan sync secara reguler, jangan lupa untuk menjaga frekuensinya, misalnya sekali atau dua kali sehari.

Catatan: Perlu dicatat bahwa kebanyakan admin mirror umum/publik menganggap sync lebih dari satu atau dua kali sehari sebagai penyalahgunaan. Sebagian bahkan akan mem-ban IP anda dari server mereka jika anda terus melakukannya.

Konfigurasi klien

Sekarang, atur komputer lain agar menggunakan mirror rsync lokal anda. Edit /etc/make.conf dan atur variabel SYNC agar menunjuk ke server anda.

Daftar Kode 2.4: Menentukan SYNC di /etc/make.conf

(Gunakan alamat IP server)
SYNC="rsync://192.168.0.1/gentoo-portage"
(Atau gunakan nama server)
SYNC="rsync://your_server_name/gentoo-portage"

Anda dapat memeriksa apakah komputer telah di-setup dengan benar dengan cara melakukan sync ke mirror lokal anda untuk pertama kali:

Daftar Kode 2.5: Memeriksa dan sync

(Periksa apakah variabel SYNC telah di-setup)
# emerge --info|grep SYNC
SYNC="rsync://nama_server_anda/gentoo-portage"
(Sync ke mirror lokal)
# emerge --sync

Itu saja! semua komputer anda sekarang dapat menggunakan mirror rsync lokal kapanpun anda menjalankan emerge --sync.

3.  Men-setup server rsync komunitas

Pendahuluan

Catatan: Anda dapat menemukan contoh file konfigurasi dan skrip di paket gentoo-rsync-mirror. Jalankan saja emerge gentoo-rsync-mirror.

Untuk saat ini, pohon Poratge membutuhkan sekitar 600MB, jadi tidak terlalu banyak; 1GB sudah lebih dari cukup. Menyiapkan mirror Portage sangatlah mudah -- pertama, pastikan mirror anda sudah memiliki paket rsync. Kemudian, konfigurasikan file rsyncd.conf seperti berikut:

Daftar Kode 3.1: rsyncd.conf

uid = nobody
gid = nobody
use chroot = yes
max connections = 15
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync/rsyncd.motd
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[gentoo-portage]
#versi modern portage menggunakan entri ini
path = /gentoo/rsync
comment = Gentoo Linux Portage tree mirror
exclude = distfiles

Tentunya anda boleh memilih lokasi anda sendiri untuk hampir semua file. Yang terpenting adalah bagian nama ([gentoo-portage]). Ini adalah lokasi yang akan dicari oleh klien rsync.

Untuk alasan keamanan, penggunaan lingkungan chroot dianjurkan! Hal ini memiliki implikasi untuk tanda waktu yang tercatat -- bacalah FAQ di bawah.

Sekarang, anda perlu menyalin pohon Portage Gentoo Linux. Anda dapat menggunakan skrip di bawah ini untuk melakukannya. Lagi-lagi, anda mungkin ingin menyesuaikan lokasi file -- yang penting, semuanya harus sama dengan yang ada di rsyncd.conf.

Daftar Kode 3.2: rsync-gentoo-portage.sh

#!/bin/bash

RSYNC="/usr/bin/rsync"
OPTS="--quiet --recursive --links --perms --times -D --delete --timeout=300"
#Hapus tanda komentar pada baris berikut hanya jika anda memiliki akses ke rsync1.us.gentoo.org
#SRC="rsync://rsync1.us.gentoo.org/gentoo-portage"
#Jika anda sedang menunggu akses ke mirror master kami, pilihlah salah satu mirror kami:
SRC="rsync://rsync.de.gentoo.org/gentoo-portage"
DST="/space/gentoo/rsync/"

echo "Started update at" `date` >> $0.log 2>&1
logger -t rsync "re-rsyncing the gentoo-portage tree"
${RSYNC} ${OPTS} ${SRC} ${DST} >> $0.log 2>&1

echo "End: "`date` >> $0.log 2>&1

File rsyncd.motd harus berisi alamat IP anda dan informasi lain yang diperlukan tentang mirror anda, seperti info tentang komputer yang menyediakan mirror Portage dan kontak administratif. Sekarang anda dapat mencoba server anda seperti yang dijelaskan pada bab Men-setup mirror lokal rsync di atas.

Setelah anda disetujui sebagai mirror rsync resmi, komputer anda akan diberikan alias dengan nama dalam bentuk: rsync[nomor].[kode negara].gentoo.org.

4.  FAQ Singkat

Q: Siapa yang harus saya hubungi untuk menanyakan masalah dan pengurusan rsync?

A: Kunjungi Bugzilla Gentoo dan isilah sebuah bug pada produk "Mirrors", komponen "Server Problem".

Q: Bagaimana cara memeriksa status barunya isi server rsync?

A: Tim infrastruktur Gentoo selalu memonitor semua server rsync komunitas. Anda dapat melihat hasilnya di websitenya.

Q: Saya menjalankan mirror rsync pribadi untuk perusahaan saya. Apakah saya masih bisa mengakses rsync1.us.gentoo.org?

A: Karena sumber kami terbatas, kami perlu memastikan bahwa kami telah mengalokasikannya sebaik mungkin untuk menyediakan pelayanan terbaik bagi para pengguna kami. Untuk itu, kami membatasi koneksi ke server rsync master dan mirror distfiles kami hanya untuk mirror publik. Para pengguna dipersilahkan untuk menggunakan sistem mirror reguler kami untuk membuat mirror rsync, tetapi diminta untuk mengikuti beberapa panduan etika rsync.

Q: Apakah penting melakukan sync dua kali dalam satu jam?

A: Ya, penting. Anda tidak perlu melakukan sync tepat pada menit :00 dan :30, tetapi proses sync harus dilakukan pada dua waktu ini:

  1. :00 sampai :10
  2. :30 sampai :40

Sebagai tambahaan, pastikan agar dua proses sync anda terpisah tepat sejauh 30 menit. Jadi, jika anda menjadwalkan sync pertama untuk setiap jam pada menit :08, maka jadwalkan sync kedua pada menit ke :38.

Q: Di mana saya harus mengsinkronkan mirror rsync saya sebelum menjadi mirror Gentoo resmi?

  • Untuk mirror rsync Eropa: sync ke rsync.de.gentoo.org
  • Untuk mirror rsync Amerika: sync ke rsync.us.gentoo.org
  • Untuk yang lainnya: sync ke rsync.us.gentoo.org

Q: Bagaimana cara mengetahui mirror terdekat?

A: netselect telah dirancang untuk tugas ini. Jika anda belum melakukan emerge netselect maka lakukan sekarang. Lalu jalankan: netselect rsync.gentoo.org. Setelah kira-kira satu menit, netselect akan menampilkan sebuah alamat IP. Gunakan IP ini sebagai satu-satunya parameter untuk rsync dengan menambahkan 2 titik dua, misalnya: rsync 1.2.3.4::. Anda akan mengetahui mirror apa yanga anda gunakan dari pesan banner. Kemudian update /etc/make.conf.

Q: Bolehkah saya menggunakan kompresi ketika melakukan sync dari rsync1.us.gentoo.org?

A: Tidak. Kompresi menghabiskan terlalu banyak tenaga di server, jadi kami telah memaksa penonaktifannya di rsync1.us.gentoo.org. Tolong jangan mencoba untuk menggunakan kompresi ketika melakukan sync dari server ini.

Q: Saya melihat banyak proses rsync lama yang mungkin sudah tidak berjalan lagi, bagaimana cara menghapusnya?

A: Perintah ini akan membantu anda untuk menghentikan proses rsync lama yang terkadang masih ada karena masalah koneksi. Sangat penting untuk menghentikannya karena proses ini masih dianggap sebagai koneksi yang valid pada opsi 'max connections'. Anda boleh menjalankan perintah ini melalui crontab setiap jam, proses rsync yang lebih dari satu jam akan dicari dan dihentikan.

Daftar Kode 4.1: Menghentikan proses rsync lama

/bin/kill -9 `/bin/ps --no-headers -Crsync -o etime,user,pid,command|/bin/grep nobody | \
             /bin/grep "[0-9]\{2\}:[0-9]\{2\}:" |/bin/awk '{print $3}'`

Q: Ada beberapa pengguna yang terlalu sering melakukan koneksi ke server rsync saya, bahkan terkadang menyebabkan serangan DoS, apakah ada cara untuk mencegahnya?

Pada beberapa kasus, ada beberapa user yang menyalahgunakan sistem mirror rsync dengan melakukan sync lebih dari 1-2 kali dalam sehari. Pada kasus yang lebih parah lagi, pengguna menjadwalkan tugas cron untuk melakukan sync setiap 15 menit. Hal ini sering menyebabkan serangan DoS dengan terus menyibukkan slot rsync yang seharusnya bisa dipakai oleh pengguna lain. Untuk mencegahnya, anda dapat menggunakan skrip perl ini yang akan meng-scan file log rsync anda, memilih alamat IP yang melakukan koneksi lebih dari N kali dalam sehari dan secara dinamis menciptakan dile rsyncd.conf, dan memasukkan IP tadi di direktif hosts deny. Beris berikut ini mengendalikan nilai N (pada contoh ini adalah 4):

Daftar Kode 4.2: Menentukan jumlah koneksi maksimal per IP per hari

@badhosts=grep {$hash{$_}>4} keys %hash;

Jika anda menggunakan skrip ini, jangan lupa untuk merotasikan file log rsync anda setiap hari dan sesuaikan lokasi rsyncd.conf di dalamnya. Skrip ini telah diuji di Gentoo Linux, tetapi seharusnya bisa digunakan di distro lain yang mendukung rsync dan perl.



Print

Diperbarui 28 Desember 2007

Versi asli dari dokumen ini terakhir diupdate 14 Juni 2010

Rangkuman: Dokumen ini menjelaskan cara men-setup mirror rsync resmi dan mirror lokal anda sendiri.

Gentoo Mirror Administrators
Author

Tobias Klausmann
Author

Xavier Neys
Editor

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.