CK Cybers Time

Friday, June 22, 2007

Perhimpunan Nama Domain Indonesia

Guna meningkatkan penggunaan nama domain .id di Indonesia, sejumlah komunitas teknologi
informasi (TI) Indonesia membentuk Perhimpunan Nama Domain Indonesia (PANDI).Teddy Sukardi, Ketua Pengurus PANDI menjelaskan bahwa lembaga nirlaba yang diketuainya terdiri dari sejumlah komunitas TI, akademisi dan pratikisi TI. Lembaga ini bertujuan untuk mengelola pendaftaran nama domain di Indonesia.

Alasan pembentukan lembaga yang diresmikan notaris pada 29 Desember 2006 ini, menurut Teddy adalah untuk mengurangi ketergantungan pengguna internet Indonesia akan domain asing."PANDI ingin memulainya bersama dengan komunitas melalui pengunaan domain .id, yang nantinya akan banyak berguna membangun domain Indonesia, jadi tidak terlalu ketergantungan dengan luar negeri," ujar Teddy ketika dihubungi detikINET, Jumat petang (29/12/2006).

Ketergantungan terhadap domain asing, menurut dia bisa dilihat dari kejadian akhir-akhir
ini. Akibat terputusnya koneksi internasional, maka banyak pengguna internet Indonesia yang
terganggu aktifitasnya karena mengandalkan koneksi internasional, tambah Teddy. Penyelesaian sengketa atas perebutan nama domain juga menjadi tujuan pembentukan PANDI.
Nantinya pemberian nama domain akan lebih diseleksi secara lebih ketat. "Jadi pertimbangannya tidak hanya karena mereka duluan, tetapi juga harus dilihat alasan mereka
memilih nama domain tersebut, dan pendaftar juga harus mempunyai NPWP (Nomor Pajak Wajib Pajak)," papar Teddy.

Sebelumnya pengelolaan domain .id diatur pemerintah melalui Departemen Komunikasi dan
Informatika (Kominfo). Namun menurut Teddy, pengelolaan yang dipegang oleh pemerintah
dirasa kurang normal, karena tidak sesuai dengan ketentuan pada Keputusan Menteri No 21
tahun 2001 yang menyatakan bahwa penyelenggaraan nama domain haruslah lembaga nirlaba dan bersifat independen.

Saat ini, menurut Teddy tercatat sudah ada sekitar 30.000 nama domain .id, dengan
penambahan tiap tahunnya mencapai 2.000 sampai 4.000 pendaftar. Tentu saja ini dirasa masih sangat kurang, jika dibandingkan dengan jumlah pengguna internet Indonesia yang sekarang mencapai 20 juta.

Maka untuk menjaring peminat, PANDI akan menggratiskan biaya pendaftaran dan biaya
perpanjangan sampai akhir Maret tahun 2007. Sedangkan untuk selanjutnya PANDI masih belum menentukan berapa biaya yang harus dikeluarkan untuk mendapatkan nama domain .id ini.

Tuesday, June 19, 2007

Indonesia Hacking Competition

Pazia - Acer National Hacking Competition 2 akan segera diselenggarakan di sepuluh kota Indonesia dengan hadiah utama Notebook Acer Ferrari 1005, piala bergilir PANHAC, voucher training dan ujian bersertifikasi FORTINET, untuk pemenang kedua Acer LCD Monitor 17″ dan pemenang ketiga Samsung MFP Laser Printer SCX-4521.

Untuk disetiap kota, akan ada satu pemenang dengan hadiah Notebook Acer Aspire 5052.

Selain kompetisi di sepuluh kota, juga diselenggarakan kompetisi PANHAC2 Online yang diselenggarakan sebelum kompetisi di kota yang bersangkutan berjalan, pukul 14.30 - 15.00 WIB pada jadwal PANHAC2.

Kompetisi PANHAC2 Online dapat diikuti dengan cuma-cuma, tetapi berhadiah Acer LCD monitor 19”, Samsung Laser Printer ML-2010 dan Samsung Laser Printer ML-1610.

Seperti tahun lalu, PANHAC2 juga menggelar pertandingan untuk merebut file yang disimpan di dalam server lokal.

Selain PANHAC2 offline dan online, PANHAC2 ini juga menyelenggarakan Kompetisi Penulisan Artikel Hacking dan Teknologi Informasi untuk para
wartawan, editor dan penulis lepas yang juga berhadiah satu Notebook Acer Aspire 5052.

Informasi selengkapnya sebagai berikut:

Jadwal acara PANHAC2:

  • Di kota-kota selain Jakarta: pk. 12.00 - 18.00
  • Jakarta pk. 09.00 - 12.00
  • Grand Final - Jakarta pk 12.00 - 18.00

Sususan Acara:

  • Registrasi peserta
  • Sambutan Penyelenggara: ACER dan pendukung: FORTINET
  • Online Hacking Competition
  • Keynote Speaker: Perkembangan Hacking di Indonesia
  • Teknis dan implementasi kompetisi
  • Hacking Competition
  • Penentuan juara dan penyerahan hadiah

Tim Pengarah:

  • Dani Firman Syah (Xnuxer)
  • Toto Atmojo (To2)
  • MA Rody Candera (Odyxb)

Juri:

  • Michael Sunggiardi (Praktisi Komputer)
  • Dani Firman Syah (Xnuxer)
  • PT Pazia Pillar Mercycom

Persyaratan PANHAC2 - 2007

  1. Peserta bisa perorangan maupun team (terdiri dari maksimal 2 orang).
  2. Biaya pendaftaran perorangan Rp 50.000,- dan team Rp 100.000,-
  3. Peserta yang tidak membawa notebook dapat menggunakan notebook ACER 5052 series yang sudah disediakan Panitia.
  4. Peserta diperbolehkan mengikuti kompetisi menggunakan notebook yang dibawa sendiri dengan model ACER Aspire Notebook, ACER Ferrari Notebook. Jika notebook yang digunakan bukan merk tersebut, dikenakan tambahan biaya Rp 100.000 di luar biaya pendaftaran.
  5. Kompetisi nasional ini berhadiah ACER Aspire Notebook 5052 series untuk pemenang pertama di tiap kota yang akan diundang mengikuti Grand Final di Jakarta dengan akomodasi perjalanan ditanggung panitia.
  6. Pemenang pertama Grand Final memperebutkan ACER Ferrari 1005 series, piala bergilir PANHAC2, voucher training dan ujian bersertifikasi FORTINET. Hadiah Acer LCD Monitor 17” untuk pemenang kedua. Samsung MFV Laser Printer SCX-4521 untuk pemenang ketiga.
  7. Keputusan juri adalah mutlak dan tidak dapat diganggu gugat.
  8. Aturan lengkap akan disertakan kepada semua peserta pada hari kompetisi.
  9. Semua peserta akan mendapatkan makan siang, kaos dan sertifikat keikutsertaan.

Persyaratan Kompetisi Online

  1. Pendaftaran kompetisi online akan di buka mulai tanggal 24 Juni 2007.
  2. Peserta melakukan registrasi online ke http://panhac.marveltechnology.com disertai data sesuai KTP/SIM/Passport, no. telepon kantor/rumah, nomor seluler.
  3. Peserta diharuskan melakukan aktivasi setelah proses registrasi online. Kode aktivasi secara otomatis dikirim ke email peserta setelah registrasi.
  4. Tata tertib kompetisi online akan dikirimkan secara otomatis kepada peserta yang terdaftar setelah perserta melakukan proses aktivasi melalui email.
  5. Account peserta dapat digunakan pada setiap jadwal kompetisi online di tiap kota.
  6. Jadwal kompetisi online selain Jakarta, yaitu pada pk 14.30 – 15.00 WIB. Jadwal kompetisi online di Jakarta pk. 10.30 – 11.00 WIB. Harap setiap peserta yang berada pada wilayah waktu WITA dan WIT menyesuaikan pada WIB. Secara otomatis server offline di luar jadwal tersebut.
  7. Pada saat kompetisi online berlangsung peserta harus log in terlebih dahulu ke http://panhac.marveltechnology.com
  8. Rating hasil sementara kompetisi online akan ditampilkan di http://panhac.marveltechnology.com pada hari berikutnya setelah setiap jadwal terselenggara.
  9. Akan dipilih tiga orang pemenang kompetisi online dari tiga nilai tertinggi yang ditentukan berdasarkan hasil monitoring dan analisa tim juri.
  10. Pengumuman pemenang kompetisi online akan dilakukan pada 01 Agustus 2007, pk 12.00 WIB melalui http://panhac.marveltechnology.com
  11. Pemenang kompetisi online akan diundang langsung pada waktu tersebut melalui telepon/SMS untuk mengikuti Grand Final di Jakarta pada 01 Agustus 2007, dengan akomodasi perjalanan ditanggung panitia.
  12. Kompetisi online berhadiah Acer LCD monitor 19’’, Samsung Laser Printer ML-2010 dan Samsung Laser Printer ML-1610.
  13. Kompetisi online ini tidak dipungut biaya registrasi.
  14. Keputusan juri adalah mutlak dan tidak dapat diganggu gugat.
  15. Peserta wajib mentaati peraturan yang tertulis pada tata-tertib kompetisi online.

Jadwal PANHAC 2007 di 10 kota

  • Medan 26 Juni, Universitas HKBP Nommensen
    • Juliana. FOCUS. 061-7330800
  • Padang 28 Juni, Ruang Serba Guna - Universitas Negeri Padang
    • Butet. VENES JAYA. 0751-37040, 30583
  • Bandung 03 Juli, Bandung Elektronik Mall. LG Floor
    • Patrick, Susan. 3G Gallery. 022-70010708
  • Semarang 07 Juli, Plasa Simpang Lima. Hall BIMA - Lt. 1
    • Nila, Icha. WAHANA KOMPUTER. 024-8413238
  • Jogja 10 Juli, UAJY. Auditorium Kampus Bonaventura - Lt. 4
    • Kristina. WIRABUANA KOMPUTER. 0274 - 560891, 560892
  • Surabaya 12 Juli, Tunjungan Elektonik Mall.
    • Andy, David, Cahyo. APKOMINDO JATIM. 031-5018843
  • Bali 17 Juli, SMKN1 Denpasar
    • Juniasih, Maria. BALISOFT. 0361-418050, 7424494
  • Lampung 21 Juli, UNIVERSITAS NEGERI LAMPUNG
    • Yuli. MULTICOM. 0721-255888
  • Makassar 24 Juli, MTC Karebosi.
    • Elsa. FLASH Computer. 0411-857888
    • Nazarus. PROTON. 0411-310746
  • Jakarta 01 Agt, Mangga Dua Mall. LG Floor
    • Sary. PT MARVEL. 021-62311510
    • Laila. PT PAZIA. 021-62313117

Pers Conference

Kota

Waktu

Tempat (dalam konfirmasi)

Medan

Senin, 30 Apr

14.00 – 16.15

Universitas HKBP Nommensen

Padang

Kamis, 03 Mei

14.00 – 16.15

Universitas Negeri Padang

Semarang

Rabu,09 Mei

14.00 – 16.15

Wahana Komputer

Jogja

Jumat,11 Mei

09.00 – 11.15

Universitas Atmajaya

Lampung

Senin,14 Mei

10.00 – 12.15

Universitas Negeri Lampung

Bali

Senin, 21 Mei

14.00 – 16.15

Teuku Umar Garden Restoran

Makassar

Kamis, 24 Mei

14.00 – 16.15

MTC Karebosi

Jakarta

Selasa, 29 Mei

14.00 – 16.15

M2M *)

Surabaya

Kamis, 31 Mei

14.00 – 16.15

Sekretariat APKOMINDO.

Bandung

Kamis,07 Juni

14.00 – 16.15

Bandung E-tronical Mall

Acara Pers Conference PANHAC2 dan Kompetisi Penulisan Berita Tingkat Nasional dengan hadiah: 1 unit Notebook Acer Aspire 5052 series.

Tim Juri:

  • Rene L. Pattiradjawane (Redaksi Kompas)
  • Donny B.U (detikinet.com)

Kriteria penilaian:

  • Tulisan mencerminkan pemahaman tentang hacking dan PANHAC
  • Penyajian tulisan yang unik
  • Nilai tambah untuk berita yang diterbitkan lebih dari satu kali
Tulisan dikumpulkan berupa hardcopy dan terbitan di media, dikirim kepada Partner CEO di daerah, seperti yang tercantum pada jadwal PANHAC 10 kota. Softcopy dikirim ke email panitia: panhac@marvetechnology.com, segera setelah berita diterbitkan.

Pengumuman pemenang dan penyerahan hadiah akan dilakukan di Jakarta pada acara Grand Final PANHAC2, 01 Agustus 2007.

Monday, June 11, 2007

Network Storage Disc

Network Storage Disc

Storage-Area Network dan Network-Attached Storage

  1. Network-Attached Storage device

    Network-attached storage (NAS) adalah suatu konsep penyimpanan bersama pada suatu jaringan. NAS berkomunikasi menggunakan Network File Sistem (NFS) untuk UNIX, Common Internet File System (CIFS) untuk Microsoft Windows, FTP, http, dan protokol networking lainnya. NAS membawa kebebasan platform dan meningkatkan kinerja bagi suatu jaringan, seolah-olah adalah suatu dipasang peralatan. NAS device biasanya merupakan dedicated single-purpose machine. NAS dimaksudkan untuk berdiri sendiri dan melayani kebutuhan penyimpanan yang spesifik dengan sistem operasi mereka dan hardware/software yang terkait. NAS mirip dengan alat plug-and-play, akan tetapi manfaatnya adalah untuk melayani kebutuhan penyimpanan. NAS cocok digunakan untuk melayani network yang memiliki banyak client, server, dan operasi yang mungkin menangani task seperti web cache dan proxy, firewall, audio-video streeming, tape backup, dan penyimpanan data dengan file serving.

  2. Network-Attached Storage Versus Storage Area Networks

    NAS dan Storage-Area Network (SAN) memiliki sejumlah atribut umum. Kedua-Duanya menyediakan konsolidasi optimal, penyimpanan data yang dipusatkan, dan akses berkas yang efisien. Kedua-Duanya mengijinkan untuk berbagi storage antar host, mendukung berbagai sistem operasi yang berbeda pada waktu yang sama, dan memisahkan storage dari server aplikasi. Sebagai tambahan, kedua- duanya dapat menyediakan ketersediaan data yang tinggi dan dapat memastikan integritas dengan banyak komponen dan Redundant Arrays of Independent Disk (RAID). Banyak yang berpendapat bahwa NAS adalah saingan dari SAN, akan tetapi keduanya dalam kenyataannya dapat bekerja dengan cukup baik ketika digunakan bersama.

    NAS dan SAN menghadirkan dua teknologi penyimpanan yang berbeda dan menghubungkan jaringan pada tempat yang sangat berbeda. NAS berada diantar server aplikasi dan sistem berkas (lihat Gambar 1). SAN berada diantar sistem berkas dan mendasari physical storage (lihat Gambar 2). SAN merupaka jaringan itu sendiri, menghubungkan semua storage dan semua server. Karena pertimbangan ini, masing-masing mendukung kebutuhan penyimpanan dari area bisnis yang berbeda.

  3. NAS : Memikirkan Pengguna Jaringan

    NAS adalah network-centric. Biasanya digunakan Untuk konsolidasi penyimpanan client pada suatu LAN, NAS lebih disukai dalam solusi kapasitas penyimpanan untuk memungkinkan client untuk mengakses berkas dengan cepat dan secara langsung. Hal ini menghapuskan bottleneck user ketika mengakses berkas dari suatu general-purpose server.

    NAS menyediakan keamanan dan melaksanakan semua berkas dan storage service melalui protokol standard network, menggunakan TCP/IP untuk transfer data, Ethernet Dan Gigabit Ethernet untuk media akses, dan CIFS, http, dan NFS untuk remote file service. Sebagai tambahan, NAS dapat melayani UNIX dan Microsoft Windows user untuk berbagi data yang sama antar arsitektur yang berbeda. Untuk user client, NAS adalah teknologi pilihan untuk menyediakan penyimpanan dengan akses unen-cumbered ke berkas.

    Walaupun NAS menukar kinerja untuk manajebilitas dan kesederhanaan, bukan merupakan lazy technology. Gigabit Ethernet mengijinkan NAS untuk memilih kinerja yang tinggi dan latensi yang rendah, sehingga mungkin untuk mendukung banyak sekali client melalui suatu antarmuka tunggal. Banyak NAS devices yang mendukung berbagai antarmuka dan dapat mendukung berbagai jaringan pada waktu yang sama.

  4. SAN : Memikirkan Back-End/Kebutuhan Ruang Penyimpanan Komputer

    SAN adalah data-centric, jaringan khusus penyimpanan data. Tidak sama dengan NAS, SAN terpisah dari traditional LAN atau messaging network. Oleh karena itu, SAN bisa menghindari lalu lintar jaringan standar, yang sering menghambat kinerja. SAN dengan fibre channel lebih meningkatkan kinerja dan pengurangan latency dengan menggabungkan keuntungan I/O channel dengan suatu jaringan dedicated yang berbeda.

    SAN menggunakan gateway, switch, dan router untuk memudahkan pergerakan data antar sarana penyimpanan dan server yang heterogen. Ini mengijinkan untuk menghubungkan kedua jaringan dan potensi untuk semi-remote storage (memungkinkan hingga jarak 10km) ke storage management effort. Arsitektur SAN optimal untuk memindahkan storage block. Di dalam ruang komputer, SAN adalah pilihan yang lebih disukai untuk menujukan isu bandwidth dan data aksesibilitas seperti halnya untuk menangani konsolidasi.

    Dalam kaitan dengan teknologi dan tujuan mereka yang berbeda,salah satu maupun kedua-duanya dapat digunakan untuk kebutuhan penyimpanan. Dalam kenyataannya, batas antara keduanya samar sedikit menurut Kelompok Penilai, Analis Inc.. Sebagai contoh, dalam aplikasinya anda boleh memilih untuk mem-backup NAS device anda dengan SAN, atau menyertakan NAS device secara langsung ke SAN untuk mengijinkan non-bottlenecked access segera ke storage. (Sumber: An Overview of Network-Attached Storage, ¨ 2000, Evaluator Group, Inc.)

Implementasi Penyimpanan Stabil

Pada bagian sebelumnya, kita sudah membicarakan mengenai write-ahead log, yang membutuhkan ketersediaan sebuah storage yang stabil. Berdasarkan definisi, informasi yang berada di dalam stable storage tidak akan pernah hilang. Untuk mengimplementasikan storage seperti itu, kita perlu mereplikasi informasi yang dibutuhkan ke banyak peralatan storage (biasanya disk-disk) dengan failure modes yang independen. Kita perlu mengkoordinasikan penulisan update-update dalam sebuah cara yang menjamin bila terjadi kegagalan selagi meng-update tidak akan membuat semua kopi yang ada menjadi rusak, dan bila sedang recover dari sebuah kegagalan, kita bisa memaksa semua kopi yang ada ke dalam keadaan yang bernilai benar dan konsisten, bahkan bila ada kegagalan lain yang terjadi ketika sedang recovery. Untuk selanjutnya, kita akan membahas bagaimana kita bisa mencapai kebutuhan kita.

Sebuah disk write menyebabkan satu dari tiga kemungkinan:

  1. successful completion

  2. partial failure

  3. total failure

Kita memerlukan, kapan pun sebuah kegagalan terjadi ketika sedang menulis ke sebuah blok, sistem akan mendeteksinya dan memanggil sebuah prosedur recovery untuk me-restore blok tersebut ke sebuah keadaan yang konsisten. Untuk melakukan itu, sistem harus menangani dua blok physical untuk setiap blok logical. Sebuah operasi output dieksekusi seperti berikut:

  1. Tulis informasinya ke blok physical yang pertama.

  2. Ketika penulisan pertama berhasil, tulis informasi yang sama ke blok physical yang kedua.

  3. Operasi dikatakan berhasil hanya jika penulisan kedua berhasil.

Pada saat perbaikan dari sebuah kegagalan, setiap pasang blok physical diperiksa. Jika keduanya sama dan tidak terdeteksi adanya kesalahan, tetapi berbeda dalam isi, maka kita mengganti isi dari blok yang pertama dengan isi dari blok yang kedua. Prosedur recovery seperti ini memastikan bahwa sebuah penulisan ke stable storage akan sukses atau tidak ada perubahan sama sekali.

Kita bisa menambah fungsi prosedur ini dengan mudah untuk memboleh kan penggunaan dari kopi yang banyak dari setiap blok pada stable storage. Meski pun sejumlah besar kopi semakin mengurangi kemungkin an untuk terjadinya sebuah kegagalan, maka biasanya wajar untuk men simulasi stable storage hanya dengan dua kopi. Data di dalam stable storage dijamin aman kecuali sebuah kegagalan menghancurkan semua kopi yang ada.








Management RAID

Struktur RAID

Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya kinerja atau pun hilangnya data. Meski pun terdapat backup data, tetap saja ada kemungkinan data yang hilang karena adanya perubahan setelah terakhir kali data di-backup. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan.

Berbagai macam cara dilakukan untuk meningkatkan kinerja dan juga reliabilitas dari disk. Biasanya untuk meningkatkan kinerja, dilibatkan banyak disk sebagai satu unit penyimpanan. Tiap-tiap blok data dipecah ke dalam beberapa subblok, dan dibagi-bagi ke dalam disk-disk tersebut. Ketika mengirim data disk-disk tersebut bekerja secara paralel, sehingga dapat meningkatkan kecepatan transfer dalam membaca atau menulis data. Ditambah dengan sinkronisasi pada rotasi masing- masing disk, maka kinerja dari disk dapat ditingkatkan. Cara ini dikenal sebagai RAID - Redundant Array of Independent (atau Inexpensive) Disks. Selain masalah kinerja RAID juga dapat meningkatkan realibilitas dari disk dengan jalan melakukan redundansi data.

Tiga karakteristik umum dari RAID ini, yaitu :

  1. Menurut Stallings [Stallings2001], RAID adalah sebuah sebuah set dari beberapa physical drive yang dipandang oleh sistem operasi sebagai sebuah logical drive.

  2. Data didistribusikan ke dalam array dari beberapa physical drive.

  3. Kapasitas disk yang berlebih digunakan untuk menyimpan informasi paritas , yang menjamin data dapat diperbaiki jika terjadi kegagalan pada salah satu disk.

Peningkatan Kehandalan dan Kinerja

Peningkatan Kehandalan dan Kinerja dari disk dapat dicapai melalui 2 cara :

  1. Redundansi

    Peningkatan Kehandalan disk dapat dilakukan dengan redundansi, yaitu menyimpan informasi tambahan yang dapat dipakai untuk membentuk kembali informasi yang hilang jika suatu disk mengalami kegagalan. Salah satu teknik untuk redundansi ini adalah dengan cara mirroring atau shadowing , yaitu dengan membuat duplikasi dari tiap-tiap disk. Jadi, sebuah disk logical terdiri dari 2 disk physical, dan setiap penulisan dilakukan pada kedua disk, sehingga jika salah satu disk gagal, data masih dapat diambil dari disk yang lainnya, kecuali jika disk kedua gagal sebelum kegagalan pada disk pertama diperbaiki. Pada cara ini, berarti diperlukan media penyimpanan yang dua kali lebih besar daripada ukuran data sebenarnya. Akan tetapi, dengan cara ini pengaksesan disk yang dilakukan untuk membaca dapat ditingkatkan dua kali lipat. Hal ini dikarenakan setengah dari permintaan membaca dapat dikirim ke masing-masing disk. Cara lain yang digunakan adalah paritas blok interleaved , yaitu menyimpan blok-blok data pada beberapa disk dan blok paritas pada sebuah (atau sebagian kecil) disk.

  2. Paralelisme

    Peningkatan kinerja dapat dilakukan dengan mengakses banyak disk secara paralel. Pada disk mirroring, di mana pengaksesan disk untuk membaca data menjadi dua kali lipat karena permintaan dapat dilakukan pada kedua disk, tetapi kecepatan transfer data pada setiap disk tetap sama. Kita dapat meningkatkan kecepatan transfer ini dengan cara melakukan data striping ke dalam beberapa disk. Data striping, yaitu menggunakan sekelompok disk sebagai satu kesatuan unit penyimpanan, menyimpan bit data dari setiap byte secara terpisah pada beberapa disk (paralel).

Level RAID

RAID terdiri dapat dibagi menjadi 6 level yang berbeda :

  1. RAID level 0

    RAID level 0 menggunakan kumpulan disk dengan striping pada level blok, tanpa redundansi. Jadi hanya menyimpan melakukan striping blok data ke dalam beberapa disk. Level ini sebenarnya tidak termasuk ke dalam kelompok RAID karena tidak menggunakan redundansi untuk peningkatan kinerjanya.

  2. RAID level 1

    RAID level 1 ini merupakan disk mirroring, menduplikat setiap disk. Cara ini dapat meningkatkan kinerja disk, tetapi jumlah disk yang dibutuhkan menjadi dua kali lipat, sehingga biayanya menjadi sangat mahal.

  3. RAID level 2

    RAID level 2 ini merupakan pengorganisasian dengan error-correcting-code (ECC). Seperti pada memori di mana pendeteksian terjadinya error menggunakan paritas bit. Setiap byte data mempunyai sebuah paritas bit yang bersesuaian yang merepresentasikan jumlah bit di dalam byte data tersebut di mana paritas bit=0 jika jumlah bit genap atau paritas=1 jika ganjil. Jadi, jika salah satu bit pada data berubah, paritas berubah dan tidak sesuai dengan paritas bit yang tersimpan. Dengan demikian, apabila terjadi kegagalan pada salah satu disk, data dapat dibentuk kembali dengan membaca error-correction bit pada disk lain.

  4. RAID level 3

    RAID level 3 merupakan pengorganisasian dengan paritas bit interleaved. Pengorganisasian ini hampir sama dengan RAID level 2, perbedaannya adalah RAID level 3 ini hanya memerlukan sebuah disk redundan, berapapun jumlah kumpulan disk-nya. Jadi tidak menggunakan ECC, melainkan hanya menggunakan sebuah bit paritas untuk sekumpulan bit yang mempunyai posisi yang sama pada setiap disk yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara paralel.

  5. RAID level 4

    RAID level 4 merupakan pengorganisasian dengan paritas blok interleaved, yaitu menggunakan striping data pada level blok, menyimpan sebuah paritas blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jika sebuah disk gagal, blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang gagal tadi. Kecepatan transfer untuk membaca data tinggi, karena setiap disk-disk data dapat diakses secara paralel. Demikian juga dengan penulisan, karena disk data dan paritas dapat ditulis secara paralel.

  6. RAID level 5

    RAID level 5 merupakan pengorganisasian dengan paritas blok interleaved tersebar. Data dan paritas disebar pada semua disk termasuk sebuah disk tambahan. Pada setiap blok, salah satu dari disk menyimpan paritas dan disk yang lainnya menyimpan data. Sebagai contoh, jika terdapat kumpulan dari 5 disk, paritas blok ke n akan disimpan pada disk (n mod 5) + 1; blok ke n dari empat disk yang lain menyimpan data yang sebenarnya dari blok tersebut. Sebuah paritas blok tidak menyimpan paritas untuk blok data pada disk yang sama, karena kegagalan sebuah disk akan menyebabkan data hilang bersama dengan paritasnya dan data tersebut tidak dapat diperbaiki. Penyebaran paritas pada setiap disk ini menghindari penggunaan berlebihan dari sebuah paritas disk seperti pada RAID level 4.

  7. RAID level 6

    RAID level 6 disebut juga redundansi P+Q, seperti RAID level 5, tetapi menyimpan informasi redundan tambahan untuk mengantisipasi kegagalan dari beberapa disk sekaligus. RAID level 6 melakukan dua perhitungan paritas yang berbeda, kemudian disimpan di dalam blok-blok yang terpisah pada disk-disk yang berbeda. Jadi, jika disk data yang digunakan sebanyak n buah disk, maka jumlah disk yang dibutuhkan untuk RAID level 6 ini adalah n+2 disk. Keuntungan dari RAID level 6 ini adalah kehandalan data yang sangat tinggi, karena untuk menyebabkan data hilang, kegagalan harus terjadi pada tiga buah disk dalam interval rata-rata untuk perbaikan data( Mean Time To Repair atau MTTR). Kerugiannya yaitu penalti waktu pada saat penulisan data, karena setiap penulisan yang dilakukan akan mempengaruhi dua buah paritas blok.

  8. RAID level 0+1 dan 1+0

    RAID level 0+1 dan 1+0 ini merupakan kombinasi dari RAID level 0 dan 1. RAID level 0 memiliki kinerja yang baik, sedangkan RAID level 1 memiliki kehandalan. Namun, dalam kenyataannya kedua hal ini sama pentingnya. Dalam RAID 0+1, sekumpulan disk di-strip, kemudian strip tersebut di-mirror ke disk-disk yang lain, menghasilkan strip- strip data yang sama. Kombinasi lainnya yaitu RAID 1+0, di mana disk-disk di-mirror secara berpasangan, dan kemudian hasil pasangan mirrornya di-strip. RAID 1+0 ini mempunyai keuntungan lebih dibandingkan dengan RAID 0+1. Sebagai contoh, jika sebuah disk gagal pada RAID 0+1, seluruh strip-nya tidak dapat diakses, hanya sebagian strip saja yang dapat diakses, sedangkan pada RAID 1+0, disk yang gagal tersebut tidak dapat diakses, tetapi pasangan mirror-nya masih dapat diakses, yaitu disk-disk selain dari disk yang gagal.

Managemen Ruang Swap

Managemen Ruang Swap

Managemen ruang swap adalah salah satu low level task dari OS. Memori virtual menggunakan ruang disk sebagai perluasan dari memori utama. Tujuan utamanya adalah untuk menghasilkan output yang baik. Namun di lain pihak, penggunaan disk akan memperlambat akses karena akses dari memori jauh lebih cepat.

  1. Penggunaan Ruang Swap

    Ruang swap digunakan dalam beberapa cara tergantung penerapan algoritma. Sebagai contoh, sistem yang menggunakan swapping dapat menggunakan ruang swap untuk memegang seluruh proses pemetaan termasuk data dan segmen. Jumlah dari ruang swap yang dibutuhkan tergantung dari jumlah memori fisik, jumlah dari memori virtual yang dijalankan, cara penggunaan memori virtual tersebut. Beberapa OS seperti UNIX menggunakan banyak ruang swap, yang biasa diletakan di disk terpisah.

    Ketika kita akan menentukan besarnya ruang swap, sebaiknya kita tidak terlalu banyak atau terlalu sedikit. Jika sistem dijalankan dan ruang swap terlalu sedikit, maka proses akan dihentikan dan mungkin akan merusak sistem. Sebaliknya jika terlalu banyak juga akan mengakibatkan lambatnya akses dan pemborosan ruang disk.

  2. Lokasi Ruang Swap

    Ruang swap dapat diletakan di 2 tempat yaitu : ruang swap dapat berada di sistem berkas normal atau dapat juga berada di partisi yang terpisah. Jika ruang swap berukuran besar dan diletakan di sistem berkas normal, routine-nya dapat menciptakan, menamainya dan menentukan besar space. Walaupun lebih mudah dijalankan, cara ini cenderung tidak efisien. Pengaksesannya akan sangat memakan waktu dan akan meningkatkan fragmentasi karena pencarian data yang berulang terus selama proses baca atau tulis.

    Ruang swap yang diletakan di partisi disk terpisah, menggunakan manajer ruang swap terpisah untuk melakukan pengalokasian space. Manajer ruang swap tersebut menggunakan algoritma yang mengutamakan peningkatan kecepatan dari pada efisiensi. Walaupun fragmentasi masih juga terjadi, tapi masih dalam batas-batas toleransi mengingat ruang swap sangat sering diakses. Dengan partisi terpisah, alokasi ruang swap harus sudah pasti. Proses penambahan besar ruang swap dapat dilakukan hanya dengan partisi ulang atau penambahan dengan lokasi yang terpisah.

PHP Defensive

Contents:


* Web hosting comparison service

* Borland/Codegear is sponsoring the PHP Programming Innovation Award

* Surviving Digg

- 1. Avoid accessing databases

- 2. Cache Web pages

- 3. Avoid needless personalization

- 4. Queue tasks that may take too long

- 5. Move images, CSS and Javascript to a multi-threaded Web server

- 6. Minimize page serving time with page compression

- 7. Put the Web, mail and database servers in different partitions

- 8. Distribute the load when the servers limit is reached

* Your tips to handle traffic peaks



* Web hosting comparison service


Before proceeding to the main topic of this post, I would like to announce a new service available now to the PHPClasses site users.

Everybody needs to choose an hosting service. But which company provides the best hosting service for your needs? Price is one factor, but there are other factors, such as the Web server speed, up time, support response time, etc..

Starting this month, the PHPClasses site is partnering with company named RealMetrics. They audit Web hosting services and compile statistics that let you compare them, so you find which are the best hosts for your needs.

Now you may browse many of the available hosting companies in a sub-site of the PHPClasses site. If you forget the URL, just look at the PHPClasses home page and follow the link that says: "Web Hosting Comparisons".

http://hosting-metrics.phpclasses.org/

If you have a Web hosting company, send a message to hosting-metrics@phpclasses.org to learn how to get your company listed.

Keep in mind that this is an experimental partnership service. Feel free to post a comment on this article about this service, so we know how it goes.


* Borland/Codegear is sponsoring the PHP Programming Innovation Award


I also have another interesting announcement. Codegear, a division of Borland focused on software development tools, has just joined the already long list of sponsors of the PHP Programming Innovation Award.

If you have joined the PHPClasses recently and you are not aware about this award, it is an initiative meant to distinguish developers that submit the most innovative components to the PHPClasses site. Every month, awarded authors may win prizes of their choice from all those made available by the sponsors.

http://www.phpclasses.org/award/innovation/

Starting next month Codegear will be sponsoring the award providing a copy of Delphi for PHP. For those that are not familiar with Delphi for PHP, you may find here a review that I published some time ago. You may also find here translations of the review to German and Portuguese.

http://www.phpclasses.org/reviews/id/B000NOIR8U.html

Hopefully, the participation of another important sponsor providing a valuable prize will encourage more authors to make even more innovative contributions.


- Surviving Digg


Last month post about defensive programming practices was so appreciated that it reached the front page of Digg.com. Thank you to all users that voted on that article.

http://www.phpclasses.org/blog/post/65-8-defensive-programmi ...

When the post was approved to Digg's front page, all of the sudden thousands of users came to the post page. I never had an article in Digg's front page. So, I always wondered if this site was ready to handle traffic peaks caused by many users lead by busy news sites like Digg or Slashdot.

After watching how the site reacted to the traffic surge, it was with great relief that I could confirm that the site server is ready to handle significant traffic loads.

Over the years I invested a lot on measures that would minimize the load caused by serving many simultaneous users. However, only after surviving a flood of accesses of users sent by Digg, I can be confident that the site is ready survive significant traffic peaks.

Since the peak was caused by the approval of the article on Digg, in retribution to the users that voted on the article, I am glad to follow up with this article. Now I provide more details on the specific measures that I have implemented to make the site more robust and capable of handling this kind of traffic load.


- 1. Avoid accessing databases


On a database driven content sites like this, the slowest task is accessing the database to retrieve the content to display.

If a site is not fast enough to serve its pages, many simultaneous user accesses force the Web server to create more processes to handle all the requests. Consequently, more database connections need to be opened at the same time to generate the database driven content pages.

This is bad because it demands more server memory. Once the server RAM is exhausted, the machine starts using the virtual memory, making the server even slower, until it halts completely.

Nowadays, RAM chips are cheap but you can only put a limited amount of RAM on each server. So, adding more RAM to a server is only a viable solution until you reach the server RAM limit.

Furthermore, if you do not own your server machine, hosting companies may add significant charges to put more RAM in your server. So, saving RAM usage is very important.

Since RAM usage may be aggravated with excessive accesses to slow components, such as databases, it is better to avoid accessing the database, as much as possible.

I always says, the fastest database applications are those that avoid accessing the database as much as possible.


- 2. Cache Web pages


If the site needs to access the database to retrieve the content to display, what can we do to minimize the database accesses?

First, we need to focus on what kind of information the site retrieves from databases. The most common type of data is information used to build the HTML pages.

The fact is that the information in database does not change so frequently. As a matter of fact, usually different users see the exact same HTML content when they access the same page.

It is not unusual to execute many SQL queries to retrieve all the data that is necessary to build a single HTML page. So, it is evident that it would be much more efficient if the sites could cache the HTML of each page after it is accessed for the first time.

That is exactly what the PHPClasses site does. It uses this general purpose caching class to store whole pages, or specific page section excerpts, on server cache files.

http://www.phpclasses.org/filecache

Let me emphasize that the PHPClasses site does very aggressive server side caching. In practice this means that currently it is using 1.2GB of disk space to store over 160,000 cache files. So, when I mean aggressive caching, I mean practically all the site pages based on content retrieved from a database.

So, what if the database content changes? No problem, I just call a function of the class above that invalidates all the page caches that depend on content of the changed database table rows. This way, it forces the caches to be rebuilt on the next access to the site pages, and so the pages are always upto date.


- 3. Avoid needless personalization


What about pages that appear differently to each user that accesses them? No problem, I use separate cache files depending on the user accessing the pages.

However, it would useless if the site would use a separate cache file to store the HTML that each user sees. The benefit of reusing cached information would be lost.

Actually, in most cases I do not need to have separate cache file for each user, as users under the same circumstances often see the same information.

I use the concept of contextual user profiles. Many users may share the same contextual user profile. For instance, there are user profiles for: anonymous users (those that have not logged in), logged users, authors, administrator users, etc...

Under each page context, users of different profiles see different pages that are stored in distinct cache files.

To maximize the efficiency of this approach you should minimize the number of user profiles that may be used for each page context. Therefore, it is very important to avoid personalization as much as you can.

What I mean, is to avoid needless personalization details, like showing the date and hour, presenting personalized messages based on the user name like "You are logged in as Manuel Lemos", etc...

Site newsletters are another example of excessive personalization of arguable importance. Some times I see newsletters that start by "Dear John, .... If you want to unsubscribe send a message to unsubscribe-john@somesite.com". That may be nice, but it also means that you need to rebuild the newsletter message body with data from the database to send it for each subscriber.

The truth is that often that is not really necessary. To avoid having your newsletter messages be taken as spam, the To: header must contain the e-mail address of the newsletter subscriber. The message body does not really need to be personalized.

To make the newsletter deliveries more efficient, I use this MIME message composing and sending class. It can cache the message body when I deliver the newsletter message to the first subscriber. I can still change any headers to send the same newsletter to different subscribers.

http://www.phpclasses.org/mimemessage

This way I avoid the overhead of rebuilding the messages for each subscriber. Since I avoided personalizing the message body, I also do not need any more data from the database besides the subscribers e-mail addresses.

For users that want to unsubscribe by e-mail, I just provide a single unsubscription address which is associated to a POP3 mailbox. There is a script that regularly polls that mailbox using this POP3 client class.

http://www.phpclasses.org/pop3class

The script checks the From: header of the unsubscribe request message to figure which user is trying to unsubscribe. The script sends an unsubscribe confirmation request message to avoid bogus unsubscription attempts.

Back to the personalization issue, during the dot com bubble days, I used to hear a lot about personalization and how important it was for the user. It may be nice to treat the users by their names. However, when personalization imposes a very high maintenance site cost, it is something that should make you reconsider.

That does not mean that you should completely avoid personalization. For instance the PHPClasses home page for logged users is personalized.

For now it shows certain statistics about the usage of the site by the current user. I plan to make the home page more configurable letting each user see different site widgets according to personal preferences.

I have not yet decided if this level of personalization will be made available to all site users. I need to balance the pros and cons of each personalization aspect that is provided.


- 4. Queue tasks that may take too long


Caching is great to avoid repeated accesses to the same content stored in a database.

However, caching only applies to accesses that retrieve data from databases. Operations that update the database content may not benefit from caching. However, when done to frequently, database write accesses may cause server overload.

That problem happened with the PHPClasses site on three main situations. One of the situations was due to the fact that the site takes note of which packages are downloaded by each user.

This is useful to build accurate top download rankings, and also to send alert messages to users that downloaded a package when the author updates its files.

These are great site features, but as the site audience grows the tables that record package download accesses have obviously become very large.

Currently, one of the tables has 5.3 million rows. Just counting the number of rows in that table takes about 1m 40s . Updating this table when an user downloads a package is an operation that became too slow. It is not just changing the table rows. It also takes a lot of time to update the table indexes. Over time this situation became completely inviable.

The solution that I found is to not update that table in real time. Instead, I created a similar table that acted as a queue. The queue table has no indexes. Periodically, a background task started from cron, moves the queue table data to the main table.

The result in terms of efficiency gain was phenomenal. Recording package downloads has almost no overhead, as the queue table has no indexes to update. Updating the main table is also much faster, as there is only one process updating that table at a given time.

Another similar situation that made me use a queue table is the trackback submission handling. For those that are not familiar with trackbacks, those are signals sent by one site to notify another site, to let it know that there is a new page with a link pointing to the other site page.

Trackbacks are often used by blogs to notify each other about posts commenting on each other posts. The PHPClasses site supports trackback submission to keep track of blogs and forums that mention classes, reviews and blog articles posted in the PHPClasses.

http://www.phpclasses.org/tips.html?tip=trackback-links

http://www.phpclasses.org/blog/post/42-Classes-trackback-blo ...

That would be all fine and dandy, if it was not for trackback spammers. Unfortunately, there are spammers that use zombie computers infected by spyware to post fake trackback notices to sites that support the trackback protocol.

The PHPClasses site is able to detect trackback spam using its own system automatically to block spammer machines. There is also an alternative that was not available when the PHPClasses trackback system was implemented named Akismet. It is a product developed by the Wordpress developers.

http://akismet.com/

The problem of any trackback processing system is that it is very hard to keep up with all the trackback submissions sent by spammers. If you try to process each submission in real time, it takes a lot of time and your Web server starts increasing the number of processes to handle so many simultaneous requests.

Once again the solution is to avoid executing tasks that may take too long on each Web server request. Instead, I used a queue table that holds all trackback request information to be processed later periodically by a script started from a cron job.

The last situation of long tasks that had to be processed in the background is the delivery of site newsletters. This is a little different because it is a task that does not change the database.

However, querying a database table with hundreds of thousands of records to extract the list newsletters subscribers, is a task that may take too long. It may even put on hold other processes attempting to update the same database table. Obviously this is also a task that is handled by a script running in the background started from by cron job.


- 5. Move images, CSS and Javascript to a multi-threaded Web server


Another detail that may cause too many Web server accesses is the static content, such as site images, CSS and Javascript files.

Browsers usually cache static content, but when an user comes to a site for the first time, it generates a lot of requests to retrieve all the site images, CSS and Javascript.

If your site gets a flood of users from Digg, Slashdot or some other popular site, the simultaneous requests generated by all incoming users, may easily overload your server.

This would not be such a problem if PHP could run well in multi-threaded Web servers. A multi-thread Web server can handle many thousands of simultaneous requests without using too much memory.

Unfortunately, it is very hard to guarantee that PHP can run on multi-threaded Web servers without crashing its threads. The problem is not so much on PHP itself, but rather on external C libraries and extensions that are necessary, but those may not be thread-safe.

For now it is better to stay away from multi-threaded Web servers, unless you run PHP on CGI mode. That is a solution that is much slower that the traditional pre-forked Web servers. A FastCGI solution may be an option that I have not investigated.

On the other hand, serving static content using multi-threaded Web servers is ok and very recommended. If you move your images, CSS, Javascript to a separate multi-threaded Web server, not only it will be much faster, but it will take much less memory.

There are several well known Web servers that can run on multi-threaded mode, like Apache 2, Microsoft IIS, Tux, Boa, Lightttpd, thttpd, etc... The PHPClasses site uses thttpd, but probably most other alternatives would be fine.

http://www.acme.com/software/thttpd/

thttpd runs under the domain files.phpclasses.org. That domain is associated to a separate IP address. This is necessary to make sure all the static content is served via a Web server running on port 80. I tried in the past using the same IP address as www.phpclasses.org and used a different port, but that was not a good idea. Some corporations block Web accesses to any other port besides 80.


- 6. Minimize page serving time with page compression


Serving a Web page is not just a matter of generating the page content. The content must also be received by the browser. Until the user browser is not done receiving the page data from the server, that will hold on the Web server process.

This may hang on too many Web server processes for too long. Such Web server processes will be consuming too much memory, despite they are not doing anything besides waiting for the user browser to receive all the page data.

This is particularly bad if your site is being accessed by too many users from slow networks. So, it is very convenient to avoid serving Web pages that are too long. Actually the smaller the better.

One way to drastically reduce the amount of data sent to the browsers, is to use HTTP compression. I already mentioned this topic in a past post:

http://www.phpclasses.org/blog/post/58-Responsive-AJAX-appli ...

Nowadays all browsers support compression. Typical HTML compression rates are about 5:1. This means that a 50K page may be compressed to only 10K.

PHP can add compression to your pages easily using the output buffer gzip handler:

http://www.php.net/ob_gzhandler

If you do not want to spend too much time adding compression to your site pages, you can used mod_gzip with Apache 1.x or mod_deflate with Apache 2.x.

http://schroepl.net/projekte/mod_gzip/

http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

The PHPClasses site uses mod_gzip as it can also be used to compress HTML and other types of data that is not generated by PHP.


- 7. Put the Web, mail and database servers in different partitions


Despite the PHPClasses site is often very busy, for now, it can still run under a single dedicated server machine.

Currently, there are three types of server programs that cause most of the load on the server machine: Web servers (Apache 1.x and thttpd), the mail server (Qmail) and the database server (MySQL).

All of these servers perform a lot of I/O operations, especially the database and mail servers. This means that they compete for disk access.

Despite there is only one disk (mirrored by hardware RAID 1), Greg Saylor, the systems administrator that has been selling me hosting services since 1998 when I launched my first PHP site, suggested that I split the main disk space in three partitions.

This is a good idea because not only it will be more secure to recover data in case of damaged partitions, but it will eventually be faster, as each partition will be accessed using separate processes, each handling the access to the data of separate server programs.


- 8. Distribute the load when the servers limit is reached


The PHPClasses site growth never ends. Soon or later the site server machine will reach the limits of its hardware. I may still upgrade some hardware parts, but that will only postpone some server architecture rethinking for a little while.

So what shall I do then? Obviously I must start distributing the load of the servers between more machines. The current partition is helpful, as it will allow easy migration of each group of servers to different machines.

However, certain solutions that were valid with a single server, will no longer be very efficient in a distributed architecture.

I can make the mail server be distributed between several machines using SMTP relays. I can make the MySQL run on a clustered architecture using TCP connections. I can balance the load of the Web accesses between several server machines using reverse proxies.

However, one problem that arises is the use of file based caches. That is a fast solution if files reside in the same machine. However, if I need to use NFS or a similar file distribution protocol, I am afraid it will have a significant impact on the site performance.

I could rethink the site architecture to use an application server approach. That would require a major restructure. It does not seem to be a viable solution.

An alternative solution is to move from file based caches to memcached based caches. For those not familiar with memcached, this is a distributed shared memory solution developed by the fine folks of LiveJournal.com .

http://www.danga.com/memcached/

You can have one or more server machines that store cached data in RAM instead of disk files. Despite the networking overhead, it can still be a fast solution. You can use PHP persistent socket connections to avoid part of the networking connections overhead, just like with persistent database connections.

It would not be hard to build a new version of the file cache class above to provide the same API to access memcached servers. That would minimize the refactoring efforts.

Of course this is all theory. I will have to get there and put it in practice to make sure it can work as I imagine. Anyway, the migration path seems that it will be smooth, as I am sure I will be able to migrate each component one at a time.




Source : PHPClasses

Saturday, June 9, 2007

HardDisc Management

Manajemen Disk; Swap, Struktur RAID; Kaitan Langsung dan Jaringan; Implementasi Penyimpanan Stabil.

Manajemen Disk

Beberapa aspek yang termasuk aspek penting dalam Manajemen Disk :

  1. Format Disk

    Disk adalah salah satu tempat penyimpanan data. Sebelum sebuah disk dapat digunakan, disk harus dibagi-bagi dalam beberapa sektor. Sektor-sektor ini yang kemudian akan dibaca oleh pengendali. Pembentukan sektor-sektor ini disebut low level formatting atau physical formatting. Low level formatting juga akan mengisi disk dgn beberapa struktur data penting seperti header dan trailer. Header dan trailer mempunyai informasi seperti nomor sektor, dan Error Correcting Code (ECC). ECC ini berfungsi sebagai correcting code karena mempunyai kemampuan untuk mendeteksi bit yang salah, menghitung nilai yang benar dan kemudian mengubahnya. Ketika proses penulisan, ECC di-update dengan menghitung bit di area data. Pada proses pembacaan, ECC dihitung ulang dan dicocokan dengan nilai ECC yang tersimpan saat penulisan. Jika nilainya berbeda maka dipastikan ada sektor yang terkorup.

    Agar dapat menyimpan data, OS harus menyimpan struktur datanya dalam disk tersebut. Proses itu dilakukan dalam dua tahap, yaitu partisi dan logical formatting. Partisi akan membagi disk menjadi beberapa silinder yang dapat diperlakukan secara independen. Logical formatting akan membentuk sistem berkas disertai pemetaan disk. Terkadang sistem berkas ini dirasakan menggangu proses alokasi suatu data, sehingga diadakan sistem partisi lain yang tidak mengikutkan pembentukan sistem berkas, disebut raw disk .

  2. Boot Block

    Saat sebuah komputer dijalankan, sistem akan mencari sebuah initial program yang akan memulai segala sesuatunya. Initial program-nya ( initial bootstrap) bersifat sederhana dan akan menginisialisasi seluruh aspek yang diperlukan bagi komputer untuk beroperasi dengan baik seperti CPU registers, controller, dan yang terakhir adalah Sistem Operasinya. Pada kebanyakan komputer, bootstrap disimpan di ROM ( read only memory) karena letaknya yang tetap dan dapat langsung dieksekusi ketika pertama kali listrik dijalankan. Letak bootstrap di ROM juga menguntungkan karena sifatnya yang read only memungkinkan dia untuk tidak terinfeksi virus. Untuk melakukan tugasnya, bootstrap mencari kernel di disk dan me-load kernel ke memori dan kemudian loncat ke initial address untuk memulai eksekusi OS.

    Untuk alasan praktis, bootstrap sering dibuat berbentuk kecil ( tiny loader) dan diletakan di ROM, yang kemudian akan men- load full bootstrap dari disk bagian disk yang disebut boot block. Perubahan menjadi bentuk simple ini bertujuan jika diadakan perubahan pada bootstrap, maka struktur ROM tidak perlu dirubah semuanya.

  3. Bad Block

    Bad block adalah satu atau lebih sektor yang cacat atau rusak. Kerusakan ini bisa diakibatkan karena kerentanan disk jika sering dipindah-pindah atau kemasukan benda asing. Dalam disk sederhana seperti IDE controller, bad block akan ditangani secara manual seperti dengan perintah format pada MS-DOS yang akan mencari bad block dan menulis nilai spesial ke FAT entry agar tidak mengalokasikan branch routine ke blok tersebut.

    SCSI mengatasi bad block dengan cara yang lebih baik. Daftar bad block-nya dipertahankan oleh controller pada saat low level formatting, dan terus diperbarui selama disk itu digunakan. Low level formatting akan memindahkan bad sector itu ke tempat lain yang kosong dengan algoritma sector sparing atau forwarding. Sector sparing dijalankan dengan ECC mendeteksi bad sector dan melaporkannya ke OS, sehingga saat sistem dijalankan sekali lagi, controller akan menggantikan bad sector tersebut dengan sektor kosong. algoritma lain yang sering digunakan adalah sector slipping. Ketika sebuah bad sector terdeteksi, sistem akan mengopi semua isi sektor ke sektor selanjutnya secara bertahap satu-satu sampai ditemukan sektor kosong. Misal bad sector di sektor 7, maka isinya akan dipindahkan ke sektor 8, isi sektor 8 dipindahakan ke 9 dan seterusnya.




Friday, June 8, 2007

SMS Gratis / Free SMS

Hey!

Do you want to send free SMS messages?
Send free & cheap SMS's every day!
Sign up quick and free

Advantages

* Free SMS every day;
* Directly 20 free SMS credits;
* Your own number as sender;
* Follow status report of your SMS;
* Earn free SMS free and simple;
* Phonebook & SMS History;
* Group SMS and Plan your SMS's;
* SMS anonymously;
* And many more!

I truly hope you are going to use :)

Regards, Cakkavati

Click Here For Free SMS

Windows Command

Windows Command


ASSOC = Displays or modifies file extension associations.

AT = Schedules commands and programs to run on a computer.

ATTRIB = Displays or changes file attributes.

BREAK = Sets or clears extended CTRL+C checking.

CACLS = Displays or modifies access control lists (ACLs) of files.

CALL = Calls one batch program from another.

CD = Displays the name of or changes the current directory.

CHCP = Displays or sets the active code page number.

CHDIR = Displays the name of or changes the current directory.


CHKDSK = Checks a disk and displays a status report.

CHKNTFS = Displays or modifies the checking of disk at boot time.

CLS = Clears the screen.

CMD = Starts a new instance of the Windows command interpreter.

COLOR = Sets the default console foreground and background colors.

COMP = Compares the contents of two files or sets of files.

COMPACT = Displays or alters the compression of files on NTFS partitions.

CONVERT = Converts FAT volumes to NTFS. You cannot convert the
current drive.

COPY = Copies one or more files to another location.


DATE = Displays or sets the date.

DEL = Deletes one or more files.

DIR = Displays a list of files and subdirectories in a directory.

DISKCOMP = Compares the contents of two floppy disks.

DISKCOPY = Copies the contents of one floppy disk to another.

DOSKEY = Edits command lines, recalls Windows commands, and creates macros.

ECHO = Displays messages, or turns command echoing on or off.

ENDLOCAL = Ends localization of environment changes in a batch file.

ERASE = Deletes one or more files.

EXIT = Quits the CMD.EXE program (command interpreter).

FC = Compares two files or sets of files, and displays the differences
between them.

FIND = Searches for a text string in a file or files.

FINDSTR = Searches for strings in files.

FOR = Runs a specified command for each file in a set of files.

FORMAT = Formats a disk for use with Windows.

FTYPE = Displays or modifies file types used in file extension associations.

GOTO = Directs the Windows command interpreter to a labeled line in a
batch program.

GRAFTABL = Enables Windows to display an extended character set in graphics
mode.

HELP = Provides Help information for Windows commands.

IF = Performs conditional processing in batch programs.

LABEL Creates, changes, or deletes the volume label of a disk.

MD = Creates a directory.

MKDIR = Creates a directory.

MODE = Configures a system device.

MORE = Displays output one screen at a time.

MOVE = Moves one or more files from one directory to another directory.

PATH = Displays or sets a search path for executable files.

PAUSE = Suspends processing of a batch file and displays a message.

POPD = Restores the previous value of the current directory saved by PUSHD.

PRINT = Prints a text file.

PROMPT = Changes the Windows command prompt.

PUSHD = Saves the current directory then changes it.

RD = Removes a directory.

RECOVER = Recovers readable information from a bad or defective disk.

REM = Records comments (remarks) in batch files or CONFIG.SYS.

REN = Renames a file or files.

RENAME = Renames a file or files.

REPLACE = Replaces files.

RMDIR = Removes a directory.

SET = Displays, sets, or removes Windows environment variables.

SETLOCAL = Begins localization of environment changes in a batch file.

SHIFT = Shifts the position of replaceable parameters in batch files.

SORT = Sorts input.

START = Starts a separate window to run a specified program or command.

SUBST = Associates a path with a drive letter.

TIME = Displays or sets the system time.

TITLE = Sets the window title for a CMD.EXE session.

TREE = Graphically displays the directory structure of a drive or path.

TYPE = Displays the contents of a text file.

VER = Displays the Windows version.

VERIFY = Tells Windows whether to verify that your files are written
correctly to a disk.

VOL = Displays a disk volume label and serial number.

XCOPY = Copies files and directory trees.