Anda di halaman 1dari 54

A.

Mass-storage Structur

1. Gambaran Umum

1.1 Magnetic Disks

Disk magnetik menyediakan sebagian besar penyimpanan

sekunder untuk sistem komputer modern. Secara konseptual, magnetic

disk relatif sederhana (Gambar 1). Setiap piringan disk memiliki bentuk

melingkar datar, seperti CD. Diameter platter umum berkisar antara 1,8

hingga 3,5 inci. Dua permukaan piring dilapisi dengan bahan magnet. Kita

menyimpan informasi dengan merekam secara magnetis di atas pirina

jaringan

(Gambar 1 Mekanisme Moving-Head Disk )

Sebuah head read-write "melayang" tepat di atas setiap permukaan

setiap piring. Head melekat pada lengan disk yang menggerakkan semua

head sebagai satu unit. Permukaan piring secara logis dibagi menjadi trek

melingkar, yang dibagi menjadi beberapa sektor. Set trek yang pada satu

posisi lengan membentuk silinder. Mungkin ada ribuan silinder konsentris


dalam disk drive, dan setiap track dapat berisi ratusan sektor. Kapasitas

penyimpanan disk drive umum diukur dalam gigabyte.

Ketika disk sedang digunakan, motor penggerak berputar dengan

kecepatan tinggi. Kebanyakan drive berputar 60 hingga 250 kali per detik,

yang ditentukan dalam bentuk rotasi per menit (RPM). Drive umum

berputar pada 5.400, 7.200, 10.000, dan 15.000 RPM. Kecepatan disk

memiliki dua bagian. Transfer rate adalah laju di mana data mengalir

antara drive dan komputer. Waktu pemosisian, atau waktu akses acak,

terdiri dari dua bagian: waktu yang diperlukan untuk memindahkan lengan

disk ke silinder yang diinginkan, yang disebut waktu pencarian, dan waktu

yang diperlukan untuk sektor yang diinginkan untuk memutar ke head

disk, yang disebut latensi rotasi. Disk yang khas dapat mentransfer

beberapa megabyte data per detik, dan mereka memiliki waktu pencarian

dan latensi rotasi beberapa milidetik

Karena head disk melayang di atas bantalan udara yang sangat

tipis (diukur dalam mikron), ada bahaya bahwa head akan melakukan

kontak dengan permukaan disk. Meskipun piringan disk dilapisi dengan

lapisan pelindung tipis, head terkadang akan merusak permukaan

magnetik. Kecelakaan ini disebut kecelakaan head. Kecelakaan head

biasanya tidak dapat diperbaiki; seluruh disk harus diganti.

Disk dapat dilepas, memungkinkan disk yang berbeda dipasang

sesuai kebutuhan. Disk magnetik yang dapat dilepas umumnya terdiri dari
satu piring, yang disimpan dalam wadah plastik untuk mencegah

kerusakan saat tidak dalam disk drive. Bentuk lain dari removable disk

termasuk CD, DVD, dan Blu-ray disc serta removable flash-memory

device yang dikenal sebagai flash drive (yang merupakan tipe solid-state

drive).

Sebuah disk drive terpasang ke komputer oleh satu set kabel yang

disebut bus I / O. Beberapa jenis bus tersedia, termasuk advanced

technology attachment (ATA), serial ATA (SATA), eSATA, universal serial

bus (USB), dan Fibre Channel (FC). Transfer data pada bus dilakukan

oleh prosesor elektronik khusus yang disebut pengendali (Controllers.

Kontroler host adalah pengontrol di ujung komputer bus. Kontroler disk

dibangun ke setiap disk drive. Untuk melakukan operasi I / O disk,

komputer menempatkan perintah ke pengontrol host, biasanya

menggunakan port I / O yang dipetakan memori. Kontroler host kemudian

mengirimkan perintah melalui pesan ke pengontrol disk, dan pengontrol

disk mengoperasikan perangkat keras penggerak disk untuk menjalankan

perintah. Kontroler disk biasanya memiliki cache built-in. Transfer data

pada disk drive terjadi antara cache dan permukaan disk, dan transfer

data ke host, pada kecepatan elektronik cepat, terjadi antara cache dan

kontroler host.
1.2 Solid-State Disk (SSD)

Terkadang teknologi lama digunakan dengan cara baru ketika

ekonomi berubah atau teknologi berkembang. Contohnya adalah semakin

pentingnya hard disk solid state, atau SSD. Secara sederhana dijelaskan,

SSD adalah memori nonvolatile yang digunakan seperti harddisk. Ada

banyak variasi teknologi ini, dari DRAM dengan baterai untuk

memungkinkannya mempertahankan statusnya dalam kegagalan daya

melalui teknologi flash-memory seperti sel-sel satu tingkat / single-level

cell (SLC) dan multilevel cell (MLC) chip. SSD memiliki karakteristik yang

sama dengan hard disk tradisional tetapi dapat lebih diandalkan karena

mereka tidak memiliki bagian yang bergerak dan lebih cepat karena

mereka tidak memiliki waktu mencari atau latensi. Selain itu, mereka

mengonsumsi lebih sedikit daya. Namun, mereka lebih mahal per

megabyte daripada hard disk tradisional, memiliki kapasitas yang lebih

kecil daripada hard disk yang lebih besar, dan mungkin memiliki rentang

hidup yang lebih pendek daripada hard disk, jadi penggunaannya agak

terbatas. Salah Satu penggunaan untuk SSD adalah dalam array

penyimpanan, di mana mereka menyimpan metadata sistem file yang

membutuhkan kinerja tinggi. SSD juga digunakan di beberapa komputer

laptop untuk membuatnya lebih kecil, lebih cepat, dan lebih hemat energi.

Karena SSD dapat jauh lebih cepat daripada disk drive magnetik,

antarmuka bus standar dapat menyebabkan batas besar pada throughput.

Beberapa SSD dirancang untuk terhubung langsung ke bus sistem (PCI,


misalnya). SSD juga mengubah aspek tradisional lainnya dari desain

komputer. Beberapa sistem menggunakannya sebagai pengganti

langsung untuk disk drive, sementara yang lain menggunakannya sebagai

tier cache baru, memindahkan data antara disk magnetik, SSD, dan

memori untuk mengoptimalkan kinerja.

1.3 Pita Magnetik / Magnetic Tapes

Pita magnetik digunakan sebagai media penyimpanan sekunder

awal. Meskipun relatif permanen dan dapat menyimpan data dalam jumlah

besar, waktu aksesnya lambat dibandingkan dengan memori utama dan

disk magnetik. Selain itu, akses acak ke pita magnetik sekitar seribu kali

lebih lambat daripada akses acak ke disk magnetik, jadi pita tidak sangat

berguna untuk penyimpanan sekunder

Kaset digunakan terutama untuk cadangan, untuk penyimpanan

informasi yang jarang digunakan, dan sebagai media untuk mentransfer

informasi dari satu sistem ke sistem lainnya.

Rekaman disimpan dalam kumparan dan dililitkan atau diputar

melewati read-write head. memindahkan ke tempat yang benar pada

kaset dapat mengambil waktu, tetapi setelah diposisikan, tape drive dapat

menulis data dengan kecepatan yang sebanding dengan disk drive.

Kapasitas pita sangat bervariasi, tergantung pada jenis tape drive tertentu,

dengan kapasitas saat ini melebihi beberapa terabyte. Beberapa kaset

memiliki kompresi bawaan yang dapat melipatgandakan penyimpanan


efektif. Kaset dan driver mereka biasanya dikategorikan berdasarkan

lebar, termasuk 4, 8, dan 19 milimeter dan 1/4 dan 1/2 inci. Beberapa

dinamai menurut teknologi, seperti LTO-5 dan SDLT

2. Struktur Disk

Disk drive magnetik modern dialamatkan sebagai susunan blok

logis satu dimensi besar, di mana blok logis adalah unit transfer terkecil.

Ukuran blok logis biasanya 512 byte, meskipun beberapa disk bisa

diformat tingkat rendah untuk memiliki ukuran blok logis yang berbeda,

seperti 1.024 byte. Susunan satu dimensi dari blok-blok logis dipetakan ke

sektor-sektor disk secara berurutan. Sektor 0 adalah sektor pertama dari

trek pertama pada silinder terluar. Pemetaan berlangsung dalam urutan

melalui jalur itu, kemudian melalui sisa trek di silinder itu, dan kemudian

melalui sisa silinder dari terluar ke terdalam.

Dengan menggunakan pemetaan ini, kita dapat - paling tidak

secara teori - mengonversi nomor blok logis ke alamat disk gaya lama

yang terdiri dari nomor silinder, nomor lintasan dalam silinder itu, dan

nomor sektor dalam lintasan itu. Dalam prakteknya, sulit untuk melakukan

terjemahan ini, karena dua alasan. Pertama, sebagian besar disk memiliki

beberapa sektor yang rusak, tetapi pemetaan menyembunyikan ini

dengan mengganti sektor cadangan dari tempat lain pada disk. Kedua,

jumlah sektor per track tidak konstan pada beberapa drive.


Pada media yang menggunakan kecepatan linier konstan (CLV),

kerapatan bit per track seragam. Semakin jauh sebuah track berasal dari

pusat disk, semakin besar panjangnya, sehingga semakin banyak sektor

yang dapat dipegangnya. Ketika kita bergerak dari zona luar ke zona

dalam, jumlah sektor per track menurun. Trek di zona terluar biasanya

memiliki 40 persen lebih banyak sektor daripada trek di zona terdalam.

Drive meningkatkan kecepatan putarannya saat head bergerak dari luar

ke trek dalam untuk menjaga laju data yang sama bergerak di bawah

head. Metode ini digunakan dalam CD-ROM dan drive DVD-ROM. Atau,

kecepatan putaran disk dapat tetap konstan; dalam hal ini, kerapatan bit

menurun dari trek dalam ke trek luar (inner tracks to outer tracks ) untuk

menjaga data tetap konstan. Metode ini digunakan dalam hard disk dan

dikenal sebagai Constant Angular Velocity (CAV).

Jumlah sektor per track telah meningkat seiring dengan

meningkatnya teknologi disk, dan zona terluar dari disk biasanya memiliki

beberapa ratus sektor per track. Demikian pula, jumlah silinder per disk

telah meningkat; disk besar memiliki puluhan ribu silinder.

3. Disk Attachment

Komputer mengakses penyimpanan dalam dua cara. Salah satu

caranya adalah melalui port I / O (atau Host-Attached Storage); ini biasa

terjadi pada sistem kecil. Cara lain adalah melalui remote host dalam

sistem file terdistribusi; ini disebut sebagai Network-Attached Storage.


3.1 Host-Attached Storage

Penyimpanan host-attached adalah penyimpanan yang diakses

melalui port I / O lokal. Port ini menggunakan beberapa teknologi. PC

desktop yang khas menggunakan arsitektur bus I / O yang disebut IDE

atau ATA. Arsitektur ini mendukung maksimal dua drive per I / O bus.

Protokol yang lebih baru dan serupa yang telah menyederhanakan

pengkabelan adalah SATA.

Workstation dan server high-end umumnya menggunakan

arsitektur I / O yang lebih canggih seperti fibre channel (FC), arsitektur

serial berkecepatan tinggi yang dapat beroperasi melalui serat optik atau

kabel tembaga empat-konduktor. Ia memiliki dua varian. Salah satunya

adalah large switches fabric yang mempunyai ruang alamat 24-bit. Varian

ini diperkirakan akan mendominasi di masa depan dan merupakan dasar

dari jaringan area penyimpanan / storage area network (SAN). Karena

ruang alamat yang besar dan sifat komunikasi yang terputus, multiple host

dan perangkat penyimpanan (storage) dapat melekat pada struktur,

memungkinkan fleksibilitas yang besar dalam komunikasi I / O. Varian FC

lainnya adalah Arbitrated Loop (FC-AL) yang dapat menangani 126

perangkat (drive dan pengontrol).

Berbagai macam perangkat penyimpanan cocok untuk digunakan

sebagai penyimpanan yang terpasang di host. Di antaranya adalah hard

disk drive, array RAID, dan CD, DVD, dan drive tape. Perintah I / O yang

memprakarsai transfer data ke perangkat penyimpanan terpasang-host


membaca dan menulis blok data logis yang diarahkan ke unit

penyimpanan yang diidentifikasi secara spesifik (seperti ID bus atau unit

logis target).

3.2 Network-Attached Storage

Network-Attached Storage (NAS) device adalah sistem

penyimpanan dengan tujuan khusus yang diakses dari jarak jauh melalui

jaringan data (Gambar 2). Klien mengakses penyimpanan yang terhubung

ke jaringan melalui antarmuka remote-procedure-call seperti NFS untuk

sistem UNIX atau CIFS untuk mesin Windows. Panggilan prosedur jarak

jauh (RPC) dilakukan melalui TCP atau UDP melalui jaringan IP -

biasanya jaringan area lokal yang sama (LAN) yang membawa semua lalu

lintas data ke klien. Dengan demikian, mungkin lebih mudah untuk

menganggap NAS hanya sebagai protokol akses penyimpanan. Unit

penyimpanan yang terhubung ke jaringan biasanya diimplementasikan

sebagai larik RAID dengan perangkat lunak yang mengimplementasikan

antarmuka RPC.

(Gambar 2 Network-Attached Storage)


Penyimpanan yang terhubung ke jaringan menyediakan cara yang

nyaman untuk semua komputer di LAN untuk berbagi kumpulan

penyimpanan dengan kemudahan penamaan dan akses yang sama

dengan menikmati penyimpanan terpasang host lokal. Namun, cenderung

kurang efisien dan memiliki kinerja yang lebih rendah daripada beberapa

opsi penyimpanan yang terhubung langsung.

iSCSI adalah protokol penyimpanan jaringan-terpasang terbaru.

Intinya, ia menggunakan protokol jaringan IP untuk membawa protokol

SCSI. Dengan demikian, jaringan - bukan kabel SCSI - dapat digunakan

sebagai interkoneksi antara host dan penyimpanannya. Akibatnya, host

dapat memperlakukan penyimpanan mereka seolah-olah terpasang

langsung, meskipun penyimpanan jauh dari host.

3.3 Storage-Area Network

Salah satu kelemahan sistem penyimpanan yang terhubung ke

jaringan adalah bahwa operasi penyimpanan I / O mengkonsumsi

bandwidth pada jaringan data, sehingga meningkatkan latensi komunikasi

jaringan. Masalah ini bisa sangat akut dalam instalasi klien-server besar -

komunikasi antara server dan klien bersaing untuk bandwidth dengan

komunikasi antar server dan perangkat penyimpanan.

Sebuah jaringan area penyimpanan / Storage-Area Network (SAN)

adalah jaringan pribadi (menggunakan protokol penyimpanan daripada

protokol jaringan) yang menghubungkan server dan unit penyimpanan,


seperti yang ditunjukkan pada Gambar 3. Kekuatan SAN terletak pada

fleksibilitasnya. Beberapa host dan beberapa penyimpanan array dapat

melampirkan ke SAN yang sama, dan penyimpanan dapat secara dinamis

dialokasikan ke host. Sakelar SAN memungkinkan atau melarang akses

antara penghuni dan penyimpanan. Sebagai salah satu contoh, jika host

kehabisan ruang disk, SAN dapat dikonfigurasi untuk mengalokasikan

lebih banyak penyimpanan ke host tersebut. SAN memungkinkan klaster

server untuk berbagi penyimpanan yang sama dan untuk array

penyimpanan untuk menyertakan beberapa koneksi host langsung. SAN

biasanya memiliki lebih banyak port - serta port yang lebih mahal -

daripada array penyimpanan.

FC adalah interkoneksi SAN yang paling umum, meskipun

kesederhanaan iSCSI meningkatkan penggunaannya. Interkoneksi SAN

lainnya adalah InfiniBand - arsitektur bus tujuan khusus yang

menyediakan dukungan perangkat keras dan perangkat lunak untuk

jaringan interkoneksi berkecepatan tinggi untuk server dan unit

penyimpanan.

(Gambar 3)
4. Disk Scheduling

Salah satu tanggung jawab sistem operasi adalah dengan

menggunakan perangkat keras secara efisien. Untuk disk drive,

memenuhi tanggung jawab ini memerlukan waktu akses cepat dan

bandwidth disk yang besar. Untuk disk magnetik, waktu akses memiliki

dua komponen utama, seperti yang disebutkan dalam Bagian 10.1.1.

Waktu pencarian adalah waktu untuk lengan disk untuk memindahkan

head ke silinder yang berisi sektor yang diinginkan. Latency rotasi adalah

waktu tambahan untuk disk untuk memutar sektor yang diinginkan ke

head disk. Bandwidth disk adalah jumlah total byte yang ditransfer, dibagi

dengan total waktu antara permintaan pertama untuk layanan dan

penyelesaian transfer terakhir. Kita dapat meningkatkan waktu akses dan

bandwidth dengan mengelola urutan di mana permintaan I / O disk

dilayani.

Setiap kali suatu proses membutuhkan I / O ke atau dari disk, ia

mengeluarkan panggilan sistem ke sistem operasi. Permintaan tersebut

menentukan beberapa bagian informasi:

 Apakah operasi ini merupakan input atau output

 Apa alamat disk untuk transfer tersebut

 Apa alamat memori untuk transfer itu

 Berapa jumlah sektor yang akan ditransfer.

Jika drive disk dan kontroler yang diinginkan tersedia, permintaan

dapat segera dilayani. Jika drive atau pengendali sibuk, setiap permintaan
baru untuk layanan akan ditempatkan dalam antrian permintaan tertunda

untuk drive itu.

Untuk sistem multiprogramming dengan banyak proses, antrian

disk mungkin sering memiliki beberapa permintaan yang tertunda. Jadi,

ketika satu permintaan selesai, sistem operasi memilih permintaan yang

menunggu untuk layanan berikutnya. Bagaimana sistem operasi membuat

pilihan ini? Salah satu dari beberapa algoritma penjadwalan disk dapat

digunakan, dan kami mendiskusikannya selanjutnya.

4.1 FCFS Scheduling

(FCFS) algoritma. Algoritma ini secara intrinsik adil, tetapi pada

umumnya tidak memberikan layanan tercepat. Pertimbangkan,

misalnya, antrian disk dengan permintaan untuk I / O untuk memblok

silinder dalam urutan itu. Jika head disk awalnya pada silinder 53,

pertama-tama akan bergerak dari 53 ke 98, kemudian ke 183, 37, 122,

14, 124, 65, dan akhirnya menjadi 67, untuk gerakan head total 640

silinder. Jadwal ini digambarkan pada Gambar.4.

Wild swing dari 122 ke 14 dan kemudian kembali ke 124

menggambarkan masalah dengan jadwal ini. Jika permintaan untuk

silinder 37 dan 14 bisa dilayani bersama-sama, sebelum atau setelah

permintaan untuk 122 dan 124, yang total pergerakan head dapat

menurun secara substansial, dan kinerja bisa demikian ditingkatkan.


(Gambar 4 FCFS Disk Scheduling).

4.2 SSTF Scheduling.

Tampaknya masuk akal untuk melayani semua permintaan

dekat dengan posisi head saat ini sebelum memindahkan head jauh

untuk melayani permintaan lain. Asumsi ini adalah dasar untuk

algoritma shortest-seek-time-first(SSTF). Algoritma SSTF memilih

permintaan dengan waktu pencarian paling sedikit dari posisi head

saat ini. Dengan kata lain, SSTF memilih permintaan yang tertunda

paling dekat dengan posisi head saat ini.

Untuk contoh antrian permintaan , permintaan paling dekat

dengan posisi head awal (53) adalah pada silinder 65. Setelah kita

berada di silinder 65, permintaan terdekat berikutnya adalah pada

silinder 67. Dari sana, permintaan di silinder 37 lebih dekat daripada

satu di 98, jadi 37 dilayani berikutnya. Melanjutkan, kami melayani

permintaan di silinder 14, kemudian 98, 122, 124, dan akhirnya 183
(Gambar 5). Metode penjadwalan ini menghasilkan gerakan head total

hanya 236 silinder — sedikit lebih dari sepertiga jarak yang diperlukan

untuk penjadwalan FCFS antrean permintaan ini. Jelas, algoritma ini

memberikan peningkatan kinerja yang substansial.

Penjadwalan SSTF pada dasarnya adalah bentuk penjadwalan

shortest-job-first (SJF); dan seperti SJF penjadwalan, dapat

menyebabkan kelaparan dari beberapa permintaan. Ingat bahwa

permintaan dapat datang kapan saja. Misalkan kita memiliki dua

permintaan dalam antrian, untuk silinder 14 dan 186, dan sementara

permintaan dari 14 sedang dilayani, permintaan baru di dekat 14 tiba.

permintaan baru ini akan dilayani berikutnya, yang membuat

permintaan di 186 menunggu. Sementara permintaan ini sedang

dilayani, permintaan lain yang mendekati 14 dapat tiba. Secara teori,

aliran permintaan yang terus-menerus dekat satu sama lain dapat

menyebabkan permintaan silinder 186 untuk menunggu tanpa batas.

Skenario ini menjadi semakin mungkin sebagai antrian tertunda-

permintaan tumbuh lagi.


(Gambar 5 Penjadwalan disk SSTF)

Meskipun algoritma SSTF adalah perbaikan substansial atas

algoritma FCFS, itu tidak optimal. Dalam contoh, kita bisa melakukan

lebih baik dengan menggerakkan head dari 53 ke 37, meskipun yang

terakhir tidak terdekat, dan kemudian ke 14, sebelum berbalik ke

layanan 65, 67, 98, 122, 124, dan 183. Strategi ini mengurangi total

pergerakan head 208 silinder.

4.3 SCAN Scheduling

Dalam algoritma SCAN, lengan disk mulai di salah satu ujung disk

dan bergerak menuju ujung yang lain, melayani permintaan saat

mencapai setiap silinder, sampai mencapai ujung disk yang lain. Di

ujung lain, arah gerakan head dibalik, dan servis berlanjut. head terus

scan bolak-balik melintasi disk. Algoritma SCAN kadang-kadang

disebut algoritma lift, karena lengan disk berperilaku persis seperti lift

di gedung, pertama-tama melayani semua permintaan yang naik dan

kemudian berbalik ke permintaan layanan dengan cara lain.


Mari kembali ke contoh kita untuk mengilustrasikan. Sebelum

menerapkan SCAN untuk menjadwalkan permintaan pada silinder 98,

183, 37, 122, 14, 124, 65, dan 67, kita perlu mengetahui arah gerakan

head di samping posisi head saat ini. Dengan asumsi bahwa lengan

disk bergerak ke arah 0 dan bahwa posisi head awal adalah 53, head

akan layanan berikutnya 37 dan kemudian 14. Pada silinder 0, lengan

akan mundur dan akan bergerak ke arah ujung disk yang lain,

menservis permintaan pada 65, 67, 98, 122, 124, dan 183 (Gambar 6).

Jika sebuah permintaan tiba di antrian hanya di depan head, itu akan

segera dilayani; permintaan tiba tepat di belakang head harus

menunggu sampai lengan bergerak ke ujung disk, membalik arah, dan

kembali.

(Gambar 6 SCAN disk scheduling)

Dengan asumsi distribusi permintaan silinder yang seragam,

pertimbangkan kepadatan permintaan ketika head mencapai satu

ujung dan membalik arah. Pada titik ini, relatif sedikit permintaan
segera di depan head, karena silinder-silinder ini baru saja diservis.

Kerapatan permintaan terbesar ada di ujung disk. Permintaan ini juga

telah menunggu terpanjang, jadi mengapa tidak pergi ke sana

pertama? Itu adalah gagasan dari algoritma berikutnya.

4.4 C-SCAN Scheduling

Circular SCAN (C-SCAN) scheduling adalah varian SCAN yang

dirancang untuk memberikan waktu tunggu yang lebih seragam.

Seperti SCAN, C-SCAN memindahkan head dari salah satu ujung disk

ke yang lain, melayani permintaan di sepanjang jalan. Ketika head

mencapai ujung yang lain, bagaimanapun, segera kembali ke awal

disk tanpa melayani permintaan apapun pada perjalanan pulang

Gambar 7). Algoritma penjadwalan C-SCAN pada dasarnya

memperlakukan silinder sebagai daftar melingkar yang membungkus

dari silinder terakhir ke yang pertama.

(Gambar .7 C-SCAN disk scheduling)


4.5 LOOK Scheduling

Seperti yang kami jelaskan, SCAN dan C-SCAN memindahkan

lengan disk melintasi lebar penuh disk. Dalam prakteknya, algoritma

tidak sering diimplementasikan dengan cara ini. Lebih umum lagi,

lengan hanya berjalan sejauh permintaan terakhir di setiap arah.

Kemudian, ia membalikkan arah dengan segera, tanpa pergi ke ujung

disk. Versi SCAN dan C-SCAN yang mengikuti pola ini disebut LOOK

dan penjadwalan C-LOOK, karena mereka mencari permintaan

sebelum melanjutkan untuk bergerak ke arah tertentu (Gambar 8).

(Gambar 8 C-LOOK disk scheduling.)

4.6 Selection of a Disk-Scheduling Algorithm

Mengingat begitu banyak algoritma penjadwalan disk,

bagaimana kita memilih yang terbaik? SSTF lebih umum dan memiliki

daya tarik alami karena meningkatkan kinerja dari FCFS. SCAN dan C-
SCAN berfungsi lebih baik untuk sistem yang menempatkan beban

berat pada disk, karena mereka cenderung menyebabkan masalah

kelaparan. Untuk daftar permintaan tertentu, kami dapat menentukan

urutan pengambilan yang optimal, tetapi perhitungan yang diperlukan

untuk menemukan jadwal optimal mungkin tidak membenarkan

penghematan atas SSTF atau SCAN. Namun, dengan algoritma

penjadwalan apa pun, kinerja sangat bergantung pada jumlah dan

jenis permintaan. Sebagai contoh, anggaplah bahwa antrian biasanya

hanya memiliki satu permintaan yang luar biasa. Kemudian, semua

algoritma penjadwalan berperilaku sama, karena mereka hanya

memiliki satu pilihan tempat untuk memindahkan head disk: semuanya

berperilaku seperti penjadwalan FCFS.

Permintaan untuk layanan disk dapat sangat dipengaruhi oleh

metode alokasi file. Sebuah program yang membaca file yang

dialokasikan secara berdekatan akan menghasilkan beberapa

permintaan yang berdekatan pada disk, menghasilkan gerakan head

yang terbatas. File yang terhubung atau diindeks, sebaliknya, mungkin

termasuk blok yang tersebar luas di disk, menghasilkan gerakan head

yang lebih besar. Lokasi direktori dan blok indeks juga penting. Karena

setiap file yang harus dibuka untuk digunakan, dan membuka file

membutuhkan mencari struktur direktori, direktori akan sering diakses.

Misalkan entri direktori berada di silinder pertama dan data file ada di

silinder terakhir. Dalam hal ini, head disk harus memindahkan seluruh
lebar disk. Jika entri direktori berada di silinder tengah, head harus

bergerak hanya setengah lebar. Caching direktori dan blok indeks di

memori utama juga dapat membantu mengurangi gerakan disk-arm,

terutama untuk permintaan baca. Karena kerumitan ini, algoritma

penjadwalan disk harus ditulis sebagai modul terpisah dari sistem

operasi, sehingga dapat diganti dengan algoritme yang berbeda jika

diperlukan. Entah SSTF atau LOOK adalah pilihan yang masuk akal

untuk algoritma default.

5 Disk Management

Sistem operasi bertanggung jawab untuk beberapa aspek lain dari

manajemen disk, juga. Di sini kita membahas inisialisasi disk, boot dari

disk, dan pemulihan blok buruk.

5.1 Disk Formatting

Disk magnetik baru adalah batu tulis kosong: itu hanya sebuah

piring dari bahan perekam magnetik. Sebelum disk dapat menyimpan

data, itu harus dibagi menjadi beberapa sektor yang dapat dibaca dan

ditulis oleh pengontrol disk. Proses ini disebut format tingkat rendah,

atau format fisik. Pemformatan tingkat rendah mengisi disk dengan

struktur data khusus untuk setiap sektor. Struktur data untuk sektor

biasanya terdiri dari header, area data (biasanya berukuran 512 byte),

dan sebuah trailer. Header dan trailer berisi informasi yang digunakan

oleh pengontrol disk, seperti nomor sektor dan kode koreksi kesalahan
(ECC) .Ketika pengontrol menulis sektor data selama I / O normal,

ECC diperbarui dengan nilai yang dihitung dari semua byte di area

data. Ketika sektor ini dibaca, ECC dihitung ulang dan dibandingkan

dengan nilai yang disimpan. Jika nomor yang disimpan dan dihitung

berbeda, ketidaksesuaian ini menunjukkan bahwa area data sektor

tersebut telah rusak dan sektor disk mungkin buruk (Bagian 10.5.3).

ECC adalah kode pengoreksi kesalahan karena berisi informasi yang

cukup, jika hanya beberapa bit data yang telah rusak, untuk

memungkinkan pengontrol untuk mengidentifikasi bit mana yang telah

berubah dan menghitung berapa nilai yang seharusnya. Ini kemudian

melaporkan kesalahan lunak yang dapat dipulihkan. Kontroler secara

otomatis melakukan pemrosesan ECC setiap kali suatu sektor dibaca

atau ditulis.

Sebagian besar hard disk memiliki format tingkat rendah di pabrik

sebagai bagian dari proses manufaktur. Format ini memungkinkan

pabrikan untuk menguji disk dan menginisialisasi pemetaan dari nomor

blok logis ke sektor bebas cacat pada disk. Untuk banyak cakram

keras, ketika pengontrol disk diinstruksikan untuk memformat disk

tingkat rendah, dapat juga diberi tahu berapa banyak bita ruang data

yang tersisa di antara tajuk dan cuplikan semua sektor. Biasanya

mungkin untuk memilih di antara beberapa ukuran, seperti 256, 512,

dan 1.024 byte. Memformat disk dengan ukuran sektor yang lebih

besar berarti lebih sedikit sektor yang dapat dimuat di setiap trek;
tetapi itu juga berarti lebih sedikit header dan trailer yang ditulis di

setiap trek dan lebih banyak ruang tersedia untuk data pengguna.

Beberapa sistem operasi hanya dapat menangani ukuran sektor 512

byte. Sebelum dapat menggunakan disk untuk menyimpan file, sistem

operasi masih perlu merekam struktur datanya sendiri pada disk. Ia

melakukannya dalam dua langkah. Langkah pertama adalah

mempartisi disk menjadi satu atau beberapa grup silinder. Sistem

operasi dapat memperlakukan setiap partisi seolah-olah itu adalah disk

yang terpisah. Misalnya, satu partisi dapat menyimpan salinan kode

eksekusi sistem operasi, sementara yang lain menyimpan file

pengguna. Langkah kedua adalah pemformatan logis, atau pembuatan

sistem file. Pada langkah ini, sistem operasi menyimpan struktur file

sistem-file awal ke dalam disk. Struktur data ini mungkin termasuk peta

ruang gratis dan dialokasikan dan direktori kosong awal.

5.2 Boot Block

Agar komputer dapat mulai berjalan — misalnya, ketika komputer

dinyalakan atau di-boot ulang — komputer harus memiliki program

awal untuk dijalankan. Program bootstrap awal ini cenderung

sederhana. Ini menginisialisasi semua aspek sistem, dari register CPU

ke pengendali perangkat dan isi dari memori utama, dan kemudian

memulai sistem operasi. Untuk melakukan tugasnya, program

bootstrap menemukan kernel sistem operasi pada disk, memuat kernel


itu ke dalam memori, dan melompat ke alamat awal untuk memulai

eksekusi sistem operasi. Untuk kebanyakan komputer, bootstrap

disimpan dalam memori hanya-baca (ROM). Lokasi ini nyaman, karena

ROM tidak perlu inisialisasi dan berada di lokasi tetap yang dapat

mulai dijalankan prosesor saat dihidupkan atau disetel ulang. Dan,

karena ROMis hanya membaca, itu tidak dapat terinfeksi oleh virus

komputer. Masalahnya adalah bahwa mengubah kode bootstrap ini

membutuhkan perubahan chip perangkat keras ROM. Untuk alasan ini,

kebanyakan sistem menyimpan program bootstrap loader kecil di ROM

boot yang tugas satu-satunya adalah memasukkan program bootstrap

penuh dari disk. Program bootstrap penuh dapat diubah dengan

mudah: versi baru hanya ditulis ke dalam disk. Program bootstrap

penuh disimpan di "blok boot" di lokasi tetap pada disk. Disk yang

memiliki partisi boot disebut disk boot atau disk sistem. Mari kita

pertimbangkan sebagai contoh proses boot di Windows. Pertama,

perhatikan bahwa Windows memungkinkan hard disk dibagi menjadi

partisi, dan satu partisi — diidentifikasi sebagai partisi boot — berisi

sistem operasi dan driver perangkat. Sistem Windows menempatkan

kode bootnya di sektor pertama pada hard disk, yang diistilahkan

dengan catatan boot master, atau MBR. Booting dimulai dengan

menjalankan kode yang bertempat tinggal di memori ROM sistem.

Kode ini mengarahkan sistem untuk membaca kode boot dari MBR.

Selain berisi kode boot, MBR berisi tabel daftar partisi untuk hard disk
dan bendera yang menunjukkan partisi mana sistem akan di-boot,

seperti yang diilustrasikan pada Gambar 9. Setelah sistem

mengidentifikasi partisi boot, ia membaca sektor pertama dari partisi itu

(yang disebut sektor boot) dan berlanjut dengan sisa proses boot, yang

meliputi memuat berbagai subsistem dan layanan sistem.

(Gambar 9 Booting dari disk pada Windows.)

5.3 Bad Block

Karena disk memiliki bagian yang bergerak dan toleransi kecil

(ingat bahwa head diska melayang tepat di atas permukaan disk),

mereka rentan terhadap kegagalan. Terkadang kegagalannya selesai;

dalam hal ini, disk perlu diganti dan kontennya dipulihkan dari media

cadangan ke disk baru. Lebih sering, satu atau lebih sektor menjadi

rusak. Kebanyakan disk bahkan berasal dari pabrik dengan blok buruk.

Tergantung pada disk dan pengontrol yang digunakan, blok ini

ditangani dengan berbagai cara. Disk yang lebih canggih lebih pintar
tentang pemulihan blok buruk. Pengontrol menyimpan daftar blok

buruk pada disk. Daftar ini diinisialisasi selama pemformatan tingkat

rendah di pabrik dan diperbarui selama masa pakai disk. Pemformatan

tingkat rendah juga menyisihkan sektor cadangan yang tidak terlihat

oleh sistem operasi. Kontroler dapat diberitahu untuk mengganti setiap

sektor buruk secara logis dengan salah satu sektor cadangan. Skema

ini dikenal sebagai sparing sektor atau forwarding.

Transaksi sektor buruk yang tipikal mungkin adalah sebagai berikut:

 Sistem operasi mencoba membaca blok logis 87.

 Controller menghitung ECC dan menemukan bahwa sektor

buruk. Ini melaporkan temuan ini ke sistem operasi.

 Waktu berikutnya sistem reboot, perintah khusus dijalankan

untuk memberitahu controller untuk menggantikan sektor buruk

dengan cadangan.

 Setelah itu, setiap kali sistem meminta blok logis 87, permintaan

tersebut diterjemahkan ke dalam alamat sektor pengganti oleh

controller.

Perhatikan bahwa pengalihan tersebut oleh controller bisa

membatalkan optimasi apapun dengan algoritma penjadualan disk

sistem operasi! Untuk alasan ini, sebagian besar disk diformat untuk

menyediakan beberapa sektor cadangan di setiap silinder dan silinder

cadangan juga. Ketika sebuah blok buruk dipetakan, controller

menggunakan sektor cadang dari silinder yang sama, jika


memungkinkan. Sebagai alternatif untuk menghemat sektor, beberapa

pengendali dapat diinstruksikan untuk mengganti blok yang buruk oleh

sektor yang tergelincir. Berikut ini sebuah contoh: Misalkan blok logis

17 menjadi rusak dan cadangan pertama yang tersedia mengikuti

sektor 202. Sektor tergelincir kemudian memetakan kembali semua

sektor dari 17 hingga 202, memindahkan semuanya ke satu titik.

Artinya, sektor 202 disalin ke cadangan, kemudian sektor 201 menjadi

202, lalu 200 menjadi 201, dan seterusnya, hingga sektor 18 disalin ke

sektor 19. Mengelompokkan sektor dengan cara ini membebaskan

ruang sektor 18 sehingga sektor 17 dapat dipetakan untuk itu.

6 SWAP-SPACE Management

Swap-space management adalah tugas tingkat rendah lainnya dari

sistem operasi. Memori virtual menggunakan ruang disk sebagai

perpanjangan dari memori utama. Karena akses disk jauh lebih lambat

daripada akses memori, menggunakan ruang swap secara signifikan

mengurangi kinerja sistem. Tujuan utama untuk desain dan

implementasi ruang swap adalah untuk memberikan throughput terbaik

untuk sistem memori virtual. Di bagian ini, kita membahas bagaimana

ruang swap digunakan, di mana ruang swap terletak di disk, dan

bagaimana ruang swap dikelola.


6.1 Swap-space Use

Ruang swap digunakan dalam berbagai cara oleh sistem

operasi yang berbeda, tergantung pada algoritma manajemen memori

yang digunakan. Sebagai contoh, sistem yang mengimplementasikan

swapping dapat menggunakan ruang swap untuk menyimpan

keseluruhan gambar proses, termasuk kode dan segmen data. Sistem

paging hanya dapat menyimpan halaman yang telah dikeluarkan dari

memori utama. Jumlah ruang swap yang diperlukan pada suatu sistem

dapat bervariasi dari beberapa megabyte ruang disk hingga gigabyte,

tergantung pada jumlah memori fisik, jumlah memori virtual yang

didukungnya, dan cara memori virtual digunakan.

Perhatikan bahwa mungkin lebih aman untuk melebih-lebihkan

daripada meremehkan jumlah ruang swap yang diperlukan, karena jika

sistem kehabisan ruang swap, ia mungkin terpaksa membatalkan

proses atau mungkin macet sepenuhnya. Terlalu melebih-lebihkan

membuang ruang disk yang dapat digunakan untuk file, tetapi tidak

membahayakan lainnya. Beberapa sistem merekomendasikan jumlah

yang harus disisihkan untuk ruang swap. Solaris, misalnya,

menyarankan pengaturan ruang swap yang sama dengan jumlah di

mana memori virtual melebihi memori fisik yang dapat diganti. Di masa

lalu, Linux telah menyarankan pengaturan ruang swap untuk

menggandakan jumlah memori fisik. Hari ini, keterbatasan itu hilang,

dan sebagian besar sistem Linux menggunakan ruang swap yang jauh
lebih sedikit. Beberapa sistem operasi — termasuk Linux —

memungkinkan penggunaan beberapa ruang swap, termasuk file dan

partisi swap khusus. Ruang swap ini biasanya ditempatkan pada disk

terpisah sehingga beban yang ditempatkan pada sistem I / O dengan

paging dan swapping dapat tersebar di bandwidth I / O sistem.

6.2 Swap-space location

Ruang swap dapat berada di salah satu dari dua tempat: dapat

dipahat dari sistem file normal, atau dapat berada di partisi disk yang

terpisah. Jika ruang swap hanyalah file besar dalam sistem file,

rutinitas sistem-file normal dapat digunakan untuk membuatnya, beri

nama, dan alokasikan ruangnya. Pendekatan ini, meskipun mudah

dilaksanakan, tidak efisien. Menavigasi struktur direktori dan struktur

data diskallokasi membutuhkan waktu dan (mungkin) akses disk

tambahan. Fragmentasi eksternal dapat sangat meningkatkan waktu

pertukaran dengan memaksa banyak usaha selama membaca atau

menulis gambar proses. Kita dapat meningkatkan kinerja dengan

menyimpan informasi lokasi blok dalam memori fisik dan dengan

menggunakan alat khusus untuk mengalokasikan blok berdekatan

secara fisik untuk file swap, tetapi biaya untuk melintasi struktur data

sistem file tetap ada.

Atau, ruang swap dapat dibuat dalam partisi mentah terpisah. Tidak

ada sistem file atau struktur direktori yang ditempatkan di ruang ini.
Sebaliknya, pengelola penyimpanan swap-space yang terpisah

digunakan untuk mengalokasikan dan mengalihkan blok dari partisi

mentah. Manajer ini menggunakan algoritma yang dioptimalkan untuk

kecepatan daripada untuk efisiensi penyimpanan, karena ruang swap

diakses lebih sering daripada sistem file (ketika digunakan).

Fragmentasi internal dapat meningkat, tetapi trade-off ini dapat

diterima karena umur data dalam ruang swap umumnya jauh lebih

pendek daripada data dalam sistem file. Karena ruang swap

diinisialisasi ulang pada saat boot, setiap fragmentasi berumur pendek.

Pendekatan baku-partisi menciptakan ruang swap dalam jumlah tetap

selama partisi disk. Menambahkan lebih banyak ruang swap

memerlukan baik partisi ulang disk (yang melibatkan pemindahan

partisi sistem file lain atau menghancurkannya dan memulihkannya

dari cadangan) atau menambahkan ruang swap lain di tempat lain.

Beberapa sistem operasi bersifat fleksibel dan dapat bertukar baik

dalam partisi mentah maupun di ruang file sistem. Linux adalah

contoh: kebijakan dan implementasi terpisah, yang memungkinkan

administrator mesin untuk memutuskan jenis pertukaran mana yang

akan digunakan. Trade-off adalah antara kemudahan alokasi dan

manajemen dalam sistem file dan kinerja pertukaran dalam partisi

mentah.
7 RAID Structure

Disk drive terus menjadi lebih kecil dan lebih murah, sehingga

sekarang secara ekonomis layak untuk memasang banyak disk ke sistem

komputer. Memiliki sejumlah besar disk dalam suatu sistem memberikan

peluang untuk meningkatkan laju di mana data dapat dibaca atau ditulis,

jika disk dioperasikan secara paralel. Lebih jauh lagi, pengaturan ini

menawarkan potensi untuk meningkatkan keandalan penyimpanan data,

karena informasi yang berlebihan dapat disimpan pada banyak disk.

Dengan demikian, kegagalan satu disk tidak menyebabkan hilangnya

data. Berbagai teknik disk-organisasi, secara kolektif disebut array

redundant dari disk independen (RAID), biasanya digunakan untuk

mengatasi masalah kinerja dan keandalan. Di masa lalu, RAID terdiri dari

disk kecil, murah dipandang sebagai alternatif hemat biaya ke disk yang

besar dan mahal. Hari ini, RAID digunakan untuk

keandalan mereka yang lebih tinggi dan tingkat transfer data yang lebih

tinggi, bukan karena alasan ekonomi. Oleh karena itu, I in RAID, yang

dulunya berarti "tidak mahal," sekarang berarti "independen."

7.1 Peningkatan Keandalan melalui Pengulangan (Improvement of

Reliability via Redundancy)

Pertama-tama, pertimbangkan keandalan RAID. Kemungkinan

bahwa beberapa disk yang keluar dari satu set disk N akan gagal jauh

lebih tinggi daripada kemungkinan bahwa satu disk tunggal akan


gagal. Misalkan waktu rata-rata kegagalan satu disk adalah 100.000

jam. Maka waktu rata-rata kegagalan beberapa disk dalam susunan

100 disk akan menjadi 100.000 / 100 = 1.000 jam, atau 41.66 hari,

yang tidak lama sekali! Jika kita hanya menyimpan satu salinan data,

maka setiap kegagalan disk akan mengakibatkan hilangnya sejumlah

besar data - dan tingkat kehilangan data yang tinggi tidak dapat

diterima.

Solusi untuk masalah keandalan adalah untuk memperkenalkan

redundansi; kami menyimpan informasi tambahan yang biasanya tidak

diperlukan tetapi yang dapat digunakan dalam hal kegagalan disk

untuk membangun kembali informasi yang hilang. Jadi, bahkan jika

disk gagal, data tidak hilang.

Pendekatan paling sederhana (tetapi paling mahal) untuk

memperkenalkan redundansi adalah menduplikasi setiap disk. Teknik

ini disebut mirroring. Dengan mirroring, disk logis terdiri dari dua disk

fisik, dan setiap penulisan dilakukan pada kedua disk. Hasilnya disebut

volume cermin. Jika salah satu disk dalam volume gagal, data dapat

dibaca dari yang lain. Data akan hilang hanya jika disk kedua gagal

sebelum disk gagal pertama diganti

Waktu rata-rata kegagalan volume cermin - di mana kegagalan

adalah hilangnya data - bergantung pada dua faktor. Salah satunya

adalah waktu rata-rata kegagalan disk individu. Yang lain adalah waktu

rata-rata untuk memperbaiki, yaitu waktu yang diperlukan (rata-rata)


untuk mengganti disk yang gagal dan untuk memulihkan data di

dalamnya. Anggaplah bahwa kegagalan kedua disk bersifat

independen; yaitu, kegagalan satu disk tidak terhubung dengan

kegagalan yang lain. Kemudian, jika waktu rata-rata kegagalan satu

disk adalah 100.000 jam dan waktu rata-rata untuk memperbaiki

adalah 10 jam, waktu rata-rata kehilangan data dari sistem disk

bercermin adalah 100, 0002 / (2 ∗ 10) = 500 ∗ 106 jam, atau 57.000

tahun!

Anda harus menyadari bahwa kita tidak dapat benar-benar

menganggap bahwa kegagalan disk akan menjadi independen.

Kegagalan daya dan bencana alam, seperti gempa bumi, kebakaran,

dan banjir, dapat mengakibatkan kerusakan pada kedua disk pada

saat yang bersamaan. Juga, cacat manufaktur dalam batch disk dapat

menyebabkan kegagalan yang berkorelasi. Ketika usia disk,

probabilitas kegagalan tumbuh, meningkatkan kemungkinan bahwa

disk kedua akan gagal sementara yang pertama sedang diperbaiki.

Terlepas dari semua pertimbangan ini, bagaimanapun, sistem

mirrored-disk menawarkan keandalan yang jauh lebih tinggi daripada

sistem disk tunggal.

Kegagalan daya adalah sumber kekhawatiran khusus, karena

mereka terjadi jauh lebih sering daripada bencana alam. Bahkan

dengan pencerminan disk, jika menulis sedang berlangsung ke blok

yang sama di kedua disk, dan daya gagal sebelum kedua blok
sepenuhnya ditulis, dua blok dapat berada dalam keadaan yang tidak

konsisten. Satu solusi untuk masalah ini adalah menulis satu salinan

terlebih dahulu, lalu yang berikutnya. Lainnya adalah menambahkan

cache solid-state nonvolatile RAM (NVRAM) ke susunan RAID. Cache

write-back ini dilindungi dari kehilangan data selama gangguan listrik,

sehingga penulisan dapat dianggap lengkap pada titik itu, dengan

asumsi NVRAM memiliki semacam perlindungan dan koreksi

kesalahan, seperti ECC atau mirroring.

7.2 Peningkatan Kinerja melalui Paralelisme (Improvement in

Performance via Parallelism)

Sekarang mari kita pertimbangkan bagaimana akses paralel ke

beberapa disk meningkatkan kinerja. Dengan disk mirroring, tingkat di

mana permintaan baca dapat ditangani berlipat ganda, karena

permintaan baca dapat dikirim ke salah satu disk (selama kedua disk

dalam pasangan berfungsi, karena hampir selalu demikian).

Kecepatan transfer setiap pembacaan sama dengan sistem disk

tunggal, tetapi jumlah pembacaan per satuan waktu telah berlipat

ganda.

Dengan banyak disk, kita dapat meningkatkan kecepatan transfer

(atau sebaliknya) dengan menggores data di seluruh disk. Dalam

bentuk yang paling sederhana, striping data terdiri dari membagi bit

dari setiap byte di beberapa disk; striping seperti ini disebut striping bit-
level. Sebagai contoh, jika kita memiliki array delapan disk, kita

menulis bit i dari setiap byte ke disk i. Array delapan disk dapat

diperlakukan sebagai disk tunggal dengan sektor-sektor yang delapan

kali ukuran normal dan, yang lebih penting, yang memiliki delapan kali

tingkat akses. Setiap disk berpartisipasi di setiap akses (baca atau

tulis); sehingga jumlah akses yang dapat diproses per detik hampir

sama dengan pada satu disk, tetapi setiap akses dapat membaca

delapan kali lebih banyak data dalam waktu yang sama seperti pada

satu disk.

Striping bit-level dapat digeneralisasikan untuk menyertakan

sejumlah disk yang merupakan kelipatan 8 atau membagi 8. Sebagai

contoh, jika kita menggunakan array dari empat disk, bit i dan 4 + i

setiap byte pergi ke disk i. Lebih lanjut, striping tidak perlu terjadi pada

level bit. Pada strip-level striping, misalnya, blok-blok dari suatu file di-

strip di beberapa disk; dengan n disk, blok i dari sebuah file masuk ke

disk (i mod n) + 1. Level-level lain dari striping, seperti byte suatu

sektor atau sektor-sektor blok, juga dimungkinkan. Strip-level striping

adalah yang paling umum.

Paralelisme dalam sistem disk, seperti yang dicapai melalui

striping, memiliki dua tujuan utama:

 Tingkatkan throughput dari beberapa akses kecil (yaitu, akses

halaman) dengan load balancing.

 Kurangi waktu respons dari akses besar.


7.3 Tingkat RAID

Pencerminan memberikan keandalan yang tinggi, tetapi mahal.

Striping memberikan tingkat transfer data yang tinggi, tetapi tidak

meningkatkan keandalan. Banyak skema untuk menyediakan

redundansi dengan biaya lebih rendah dengan menggunakan disk

striping dikombinasikan dengan bit "paritas" (yang kami gambarkan

dengan singkat) telah diusulkan. Skema ini memiliki trade-off biaya-

kinerja yang berbeda dan diklasifikasikan menurut level yang disebut

level RAID. Kami menggambarkan berbagai tingkatan di sini; (Gambar

11) menunjukkannya secara bergambar (dalam gambar, P

menunjukkan bit yang mengoreksi kesalahan dan C menunjukkan

salinan data yang kedua). Dalam semua kasus yang digambarkan

dalam gambar, data senilai empat disk disimpan, dan disk ekstra

digunakan untuk menyimpan informasi yang berlebihan untuk

pemulihan kegagalan.

 Level RAID 0. Level RAID 0 mengacu pada array disk dengan

striping pada tingkat blok tetapi tanpa redundansi (seperti mirroring

atau bit paritas), seperti yang ditunjukkan pada Gambar 11 (a).

 Level RAID 1. Level RAID 1 mengacu pada mirroring disk. Gambar

11 (b) menunjukkan organisasi cermin.


(Gambar 11)

 Level RAID 2. Level RAID 2 juga dikenal sebagai organisasi error-

correcting-code (ECC) gaya memori. Sistem memori telah lama

mendeteksi kesalahan tertentu dengan menggunakan bit paritas.

Setiap byte dalam sistem memori mungkin memiliki bit paritas

terkait dengan itu yang mencatat apakah jumlah bit dalam byte

yang diset ke 1 adalah genap (parity = 0) atau ganjil (parity = 1).

Jika salah satu bit dalam byte rusak (baik 1 menjadi 0, atau 0

menjadi 1), paritas dari perubahan byte dan dengan demikian tidak
sesuai dengan paritas yang tersimpan. Demikian pula, jika bit

paritas yang disimpan rusak, itu tidak sesuai dengan paritas yang

dihitung. Dengan demikian, semua kesalahan bit tunggal dideteksi

oleh sistem memori. Skema koreksi kesalahan menyimpan dua

atau lebih bit tambahan dan dapat merekonstruksi data jika satu bit

rusak.

Ide ECC dapat digunakan secara langsung dalam array disk

melalui striping byte di disk. Sebagai contoh, bit pertama dari setiap

byte dapat disimpan dalam disk 1, bit kedua dalam disk 2, dan

seterusnya sampai bit kedelapan disimpan dalam disk 8; bit koreksi

kesalahan disimpan dalam disk lebih lanjut. Skema ini ditunjukkan

pada Gambar 11 (c), di mana disk yang berlabel P menyimpan bit-

bit koreksi kesalahan. Jika salah satu disk gagal, bit-bit sisa dari

byte dan bit-bit koreksi kesalahan terkait dapat dibaca dari disk lain

dan digunakan untuk merekonstruksi data yang rusak. Perhatikan

bahwa RAID level 2 hanya membutuhkan tiga overhead disk untuk

empat disk data, tidak seperti RAID level 1, yang membutuhkan

empat disk overhead.

 Level RAID 3. Level RAID 3, atau organisasi bit-interleaved parity,

meningkat pada level 2 dengan mempertimbangkan fakta bahwa,

tidak seperti sistem memori, pengendali disk dapat mendeteksi

apakah sektor telah dibaca dengan benar, sehingga bit paritas

tunggal dapat digunakan untuk koreksi kesalahan serta untuk


deteksi. Idenya adalah sebagai berikut: Jika salah satu sektor

rusak, kita tahu persis sektor mana itu, dan kita dapat mengetahui

apakah setiap bit di sektor ini adalah 1 atau 0 dengan menghitung

paritas bit yang sesuai dari sektor di disk lainnya. Jika paritas bit

yang tersisa sama dengan paritas yang disimpan, bit yang hilang

adalah 0; sebaliknya, ini adalah 1. RAID level 3 sama baiknya

dengan level 2 tetapi lebih murah dalam jumlah disk ekstra yang

diperlukan (hanya memiliki satu-disk overhead), jadi level 2 tidak

digunakan dalam praktek. Level 3 ditunjukkan secara bergambar

pada Gambar 11 (d).

RAID level 3 memiliki dua keunggulan di atas level 1. Pertama,

penyimpanan over-head dikurangi karena hanya satu parity disk yang

diperlukan untuk beberapa disk reguler, sedangkan satu mirror disk

diperlukan untuk setiap disk di level 1. Kedua, sejak membaca dan

menulis dari satu byte tersebar di beberapa disk dengan striping data

N-way, kecepatan transfer untuk membaca atau menulis satu blok

adalah N kali secepat dengan level RAID 1. Di sisi negatif, RAID level

3 mendukung lebih sedikit I / Os per detik, karena setiap disk harus

berpartisipasi dalam setiap permintaan I / O.

Masalah kinerja lebih lanjut dengan RAID 3 - dan dengan

semua tingkat RAID berbasis paritas - adalah biaya komputasi dan

menulis paritas. Hasil overhead ini secara signifikan lebih lambat

menulis daripada dengan array RAID non-paritas. Untuk memoderasi


hukuman kinerja ini, banyak array penyimpanan RAID termasuk

pengontrol perangkat keras dengan perangkat keras paritas khusus.

Kontroler ini akan mematikan komputasi paritas dari CPU ke array.

Array memiliki cache NVRAM juga, untuk menyimpan blok sementara

paritas dihitung dan untuk buffer penulisan dari pengontrol ke spindle.

Kombinasi ini dapat membuat RAID paritas hampir secepat non-

paritas. Bahkan, sebuah array caching yang melakukan paritas RAID

dapat mengungguli RAID non-paritas non-caching.

 Level RAID 4. Level RAID 4, atau organisasi paritas blok-interleaved,

menggunakan strip-level striping, seperti pada RAID 0, dan sebagai

tambahan membuat blok paritas pada disk terpisah untuk blok yang

sesuai dari N disk lain. Skema ini digambarkan pada Gambar 11 (e).

Jika salah satu disk gagal, blok paritas dapat digunakan dengan blok

yang sesuai dari disk lain untuk memulihkan blok dari disk yang gagal.

Blok baca hanya mengakses satu disk, memungkinkan

permintaan lain untuk diproses oleh disk lain. Dengan demikian, tingkat

transfer data untuk setiap akses lebih lambat, tetapi akses baca ganda

dapat dilanjutkan secara paralel, yang mengarah ke tingkat I / O

keseluruhan yang lebih tinggi. Kecepatan transfer untuk pembacaan

besar tinggi, karena semua disk dapat dibaca secara paralel. Tulisan

besar juga memiliki tingkat transfer tinggi, karena data dan paritas

dapat ditulis secara paralel. Tulisan independen kecil tidak dapat

dilakukan secara paralel. Suatu sistem operasi menulis data yang lebih
kecil dari satu blok mengharuskan pemblokiran dibaca, dimodifikasi

dengan data baru, dan ditulis kembali. Blok paritas juga harus

diperbarui. Ini dikenal sebagai siklus baca-ubah-tulis. Jadi, satu tulisan

membutuhkan empat akses disk: dua untuk membaca dua blok tua

dan dua untuk menulis dua blok baru. WAFL (yang kita bahas pada

Bab 12) menggunakan RAID level 4 karena level RAID ini

memungkinkan disk untuk ditambahkan ke set RAID secara mulus.

Jika disk yang ditambahkan diinisialisasi dengan blok yang hanya

berisi angka nol, maka nilai paritas tidak berubah, dan set RAID masih

benar.

 Level RAID 5. Level RAID 5, atau paritas didistribusikan blok-

interleaved, berbeda dari level 4 di mana ia menyebarkan data dan

paritas di antara semua disk N +1, daripada menyimpan data dalam

disk N dan paritas dalam satu disk. Untuk setiap blok, salah satu disk

menyimpan paritas dan yang lain menyimpan data. Misalnya, dengan

array lima disk, paritas untuk blok n disimpan dalam disk (n mod 5) +1.

Blok n dari empat disk lainnya menyimpan data aktual untuk blok itu.

Pengaturan ini ditunjukkan pada Gambar 11 (f), di mana Ps

didistribusikan di semua disk. Blok paritas tidak dapat menyimpan

paritas untuk blok dalam disk yang sama, karena kegagalan disk akan

mengakibatkan hilangnya data serta paritas, dan karenanya kerugian

tidak dapat dipulihkan. Dengan menyebarkan paritas di semua disk di

set, RAID 5 menghindari potensi berlebihan dari paritas disk tunggal,


yang dapat terjadi dengan RAID 4. RAID 5 adalah sistem RAID paritas

yang paling umum

 Level RAID 6. Level RAID 6, juga disebut skema redundansi P + Q,

sangat mirip dengan RAID level 5 tetapi menyimpan informasi yang

berlebihan untuk menjaga terhadap beberapa kegagalan disk. Alih-alih

paritas, kode koreksi kesalahan seperti kode Reed-Solomon

digunakan. Dalam skema yang ditunjukkan pada Gambar 11 (g), 2 bit

data redundan disimpan untuk setiap 4 bit data - dibandingkan dengan

1 bit paritas di level 5 - dan sistem dapat mentoleransi dua kegagalan

disk.

 Level RAID 0 + 1 dan 1 + 0. Level RAID 0 + 1 mengacu pada

kombinasi level RAID 0 dan 1. RAID 0 menyediakan kinerja,

sementara RAID 1 memberikan keandalan. Secara umum, level ini

memberikan kinerja yang lebih baik daripada RAID 5. Hal ini biasa

terjadi di lingkungan di mana kinerja dan reliabilitas penting.

Sayangnya, seperti RAID 1, itu menggandakan jumlah disk yang

diperlukan untuk penyimpanan, jadi itu juga relatif mahal. Dalam RAID

0 + 1, satu set disk bergaris, dan kemudian garis itu dicerminkan ke

garis lain yang setara.

Opsi RAID lain yang menjadi tersedia secara komersial adalah

RAID level 1 + 0, di mana disk dipantulkan secara berpasangan dan

kemudian pasangan cermin yang dihasilkan bergaris-garis. Skema ini

memiliki beberapa keunggulan teoritis atas RAID 0 + 1. Sebagai


contoh, jika satu disk gagal dalam RAID 0 + 1, seluruh garis tidak

dapat diakses, hanya menyisakan garis lainnya. Dengan kegagalan

dalam RAID 1 + 0, satu disk tidak tersedia, tetapi disk yang

mencerminkan itu masih tersedia, seperti semua sisa disk (Gambar 12)

Banyak variasi telah diusulkan ke skema RAID dasar yang dijelaskan

di sini. Akibatnya, beberapa kebingungan mungkin ada tentang definisi

yang tepat dari level RAID yang berbeda.

(Gambar 12RAID 0 + 1 and 1 + 0.)

Implementasi RAID adalah bidang variasi lainnya.

Pertimbangkan lapisan berikut di mana RAID dapat

diimplementasikan.

 Perangkat lunak manajemen volume dapat mengimplementasikan

RAID di dalam kernel atau pada lapisan perangkat lunak sistem.


Dalam hal ini, perangkat keras penyimpanan dapat menyediakan

fitur minimal dan masih menjadi bagian dari solusi RAID penuh.

Parity RAID cukup lambat ketika diimplementasikan dalam

perangkat lunak, jadi biasanya RAID 0, 1, atau 0 + 1 digunakan.

 RAID dapat diimplementasikan dalam perangkat host bus-adapter

(HBA). Hanya disk yang terhubung langsung ke HBA yang dapat

menjadi bagian dari set RAID yang diberikan. Solusi ini murah

tetapi tidak terlalu fleksibel.

 RAID dapat diimplementasikan dalam perangkat keras dari array

penyimpanan. Array penyimpanan dapat membuat set RAID dari

berbagai level dan bahkan dapat mengiris set ini menjadi volume

yang lebih kecil, yang kemudian disajikan ke sistem operasi. Sistem

operasi hanya perlu menerapkan sistem file pada masing-masing

volume. Array dapat memiliki beberapa koneksi tersedia atau dapat

menjadi bagian dari SAN, memungkinkan beberapa host untuk

memanfaatkan fitur array.

 RAID dapat diimplementasikan pada layer SAN interkoneksi oleh

perangkat virtualisasi disk. Dalam hal ini, perangkat diletakkan di

antara penghuni dan penyimpanan. Ini menerima perintah dari

server dan mengelola akses ke penyimpanan. Ini bisa memberikan

pencerminan, misalnya, dengan menulis setiap blok ke dua

perangkat penyimpanan terpisah.


Fitur lain, seperti snapshot dan replikasi, dapat diimplementasikan

pada masing-masing level ini juga. Snapshot adalah tampilan sistem

file sebelum pembaruan terakhir terjadi. Replikasi melibatkan duplikasi

otomatis dari penulisan antara situs terpisah untuk redundansi dan

pemulihan bencana. Replikasi bisa sinkron atau asinkron. Dalam

replikasi sinkron, setiap blok harus ditulis secara lokal dan jauh

sebelum penulisan dianggap lengkap, sedangkan dalam replikasi

asynchronous, penulisan dikelompokkan bersama dan ditulis secara

berkala. Replikasi asynchronous dapat mengakibatkan kehilangan

data jika situs utama gagal, tetapi lebih cepat dan tidak memiliki

batasan jarak. Implementasi fitur-fitur ini berbeda tergantung pada

lapisan di mana RAID diimplementasikan. Misalnya, jika RAID

diimplementasikan dalam perangkat lunak, maka setiap host mungkin

perlu melakukan dan mengelola replikasi sendiri. Jika replikasi

diimplementasikan dalam larik penyimpanan atau di interkoneksi SAN,

bagaimanapun, maka apa pun sistem operasi host atau fiturnya, data

host dapat direplikasi. Salah satu aspek lain dari sebagian besar

implementasi RAID adalah disk atau disk cadangan panas. Sebuah

cadangan panas tidak digunakan untuk data tetapi dikonfigurasi untuk

digunakan sebagai pengganti jika terjadi kegagalan disk. Misalnya,

cadangan panas dapat digunakan untuk membangun kembali

sepasang cermin jika salah satu disk dalam pasangan gagal. Dengan

cara ini, tingkat RAID dapat dibangun kembali secara otomatis, tanpa
menunggu disk yang gagal untuk diganti. Mengalokasikan lebih dari

satu cadangan panas memungkinkan lebih dari satu kegagalan

diperbaiki tanpa intervensi manusia.

7.4 Memilih Level RAID

Mengingat banyak pilihan yang mereka miliki, bagaimana

perancang sistem memilih tingkat RAID? Salah satu pertimbangan

adalah membangun kembali kinerja. Jika sebuah disk gagal, waktu

yang dibutuhkan untuk membangun kembali datanya dapat menjadi

signifikan. Ini mungkin merupakan faktor penting jika pasokan data

yang berkelanjutan diperlukan, seperti dalam sistem database kinerja

tinggi atau interaktif. Lebih jauh lagi, membangun kembali kinerja

mempengaruhi waktu rata-rata untuk kegagalan. Rebuild kinerja

bervariasi dengan tingkat RAID yang digunakan. Membangun kembali

paling mudah untuk RAID level 1, karena data dapat disalin dari disk

lain. Untuk level lainnya, kita perlu mengakses semua disk lain dalam

array untuk membangun kembali data dalam disk yang gagal.

Membangun kembali kali bisa menjadi jam untuk RAID 5 membangun

kembali set disk besar. Level RAID 0 digunakan dalam aplikasi

berkinerja tinggi di mana kehilangan data tidak penting. RAID level 1

populer untuk aplikasi yang membutuhkan keandalan tinggi dengan

pemulihan cepat. RAID 0 + 1 dan 1 + 0 digunakan di mana kinerja dan

keandalan keduanya penting - misalnya, untuk database kecil. Karena

overhead ruang tinggi RAID 1, RAID 5 sering lebih disukai untuk


menyimpan volume data yang besar. Level 6 saat ini tidak didukung

oleh banyak implementasi RAID, tetapi harus menawarkan keandalan

yang lebih baik daripada level 5. Perancang sistem RAID dan

administrator penyimpanan harus membuat beberapa keputusan lain

juga. Sebagai contoh, berapa banyak disk yang harus di set RAID

yang diberikan? Berapa banyak bit yang harus dilindungi oleh setiap

bit paritas? Jika lebih banyak disk berada dalam array, kecepatan

transfer data lebih tinggi, tetapi sistem lebih mahal. Jika lebih banyak

bit dilindungi oleh bit paritas, ruang overhead karena bit paritas lebih

rendah, tetapi kemungkinan bahwa disk kedua akan gagal sebelum

disk gagal pertama diperbaiki lebih besar, dan itu akan menghasilkan

kehilangan data.

7.5 Ekstensi

Konsep RAID telah digeneralisasikan ke perangkat

penyimpanan lain, termasuk susunan pita, dan bahkan ke penyiaran

data melalui sistem nirkabel. Ketika diterapkan ke array kaset, struktur

RAID dapat memulihkan data bahkan jika salah satu kaset dalam array

rusak. Ketika diterapkan untuk penyiaran data, blok data dibagi

menjadi unit pendek dan disiarkan bersama dengan unit paritas. Jika

salah satu unit tidak diterima karena alasan apa pun, itu dapat

direkonstruksi dari unit lain. Umumnya, robot penggerak pita yang

berisi beberapa drive tape akan menggores data di semua drive untuk

meningkatkan throughput dan mengurangi waktu cadangan.


7.6 Masalah dengan RAID

Sayangnya, RAID tidak selalu menjamin bahwa data tersedia

untuk sistem operasi dan penggunanya. Penunjuk ke file bisa salah,

misalnya, atau pointer dalam struktur file bisa salah. Tulisan yang tidak

lengkap, jika tidak dipulihkan dengan benar, dapat menghasilkan data

yang korup. Beberapa proses lain secara tidak sengaja dapat menulis

ulang struktur sistem file juga. RAID melindungi terhadap kesalahan

media fisik, tetapi bukan kesalahan perangkat keras dan perangkat

lunak lainnya. Besarnya lanskap perangkat lunak dan bug perangkat

keras, itulah berapa banyak potensi bahaya untuk data pada suatu

sistem.

Sistem file ZFS Solaris mengambil pendekatan inovatif untuk

memecahkan masalah ini melalui penggunaan checksum - teknik yang

digunakan untuk memverifikasi integritas data. ZFS mempertahankan

checksum internal dari semua blok, termasuk data dan metadata.

Checksum ini tidak disimpan dengan blok yang sedang diperiksa.

Sebaliknya, mereka disimpan dengan pointer ke blok itu. (Lihat

Gambar 13.) Pertimbangkan sebuah inode - struktur data untuk

menyimpan metadata sistem file - dengan pointer ke datanya. Di

dalam inode adalah checksum dari setiap blok data. Jika ada masalah

dengan data, checksum akan salah, dan sistem file akan

mengetahuinya. Jika data dicerminkan, dan ada blok dengan

checksum yang benar dan satu dengan checksum yang salah, ZFS
akan secara otomatis memperbarui blok buruk dengan yang buruk.

Demikian pula, entri direktori yang menunjuk ke inode memiliki

checksum untuk inode. Setiap masalah dalam inode terdeteksi ketika

direktori diakses. Pemeriksaan ini berlangsung di semua struktur ZFS,

memberikan tingkat konsistensi, deteksi kesalahan, dan koreksi

kesalahan yang jauh lebih tinggi daripada yang ditemukan di set disk

RAID atau sistem file standar. Overhead tambahan yang dibuat oleh

perhitungan checksum dan siklus baca-modifikasi-tulis ekstra tidak

terlihat karena keseluruhan kinerja ZFS sangat cepat.

Gambar 13

Masalah lain dengan sebagian besar implementasi RAID

adalah kurangnya fleksibilitas. Pertimbangkan array penyimpanan

dengan dua puluh disk dibagi menjadi empat set lima disk. Setiap set

lima disk adalah set RAID level 5. Akibatnya, ada empat volume

terpisah, masing-masing memegang sistem file. Tapi bagaimana jika


satu sistem file terlalu besar untuk muat pada lima-disk RAID level 5

set? Dan bagaimana jika sistem file lain membutuhkan ruang yang

sangat sedikit? Jika faktor-faktor tersebut diketahui sebelumnya,

maka disk dan volume dapat dialokasikan dengan benar. Sangat

sering, bagaimanapun, penggunaan disk dan persyaratan berubah

seiring waktu. Bahkan jika array penyimpanan memungkinkan

seluruh set 20 disk untuk dibuat sebagai satu set RAID besar,

masalah lain bisa muncul. Beberapa volume berbagai ukuran bisa

dibuat di lokasi. Tetapi beberapa pengelola volume tidak

mengizinkan kami mengubah ukuran volume. Dalam hal ini, kita akan

ditinggalkan dengan masalah yang sama yang dijelaskan di atas -

ukuran sistem file yang tidak cocok. Beberapa manajer volume

memungkinkan perubahan ukuran, tetapi beberapa sistem file tidak

memungkinkan untuk pertumbuhan atau penyusutan sistem file.

Volume dapat mengubah ukuran, tetapi sistem file perlu dibuat ulang

untuk memanfaatkan perubahan tersebut.

ZFS menggabungkan manajemen file-sistem dan manajemen

volume ke dalam unit yang menyediakan fungsionalitas lebih besar

daripada pemisahan tradisional dari fungsi-fungsi tersebut. Disk, atau

partisi disk, dikumpulkan bersama melalui set RAID ke dalam kolam

penyimpanan. Sebuah pool dapat menyimpan satu atau lebih file

sistem ZFS. Ruang gratis seluruh kolam tersedia untuk semua sistem

file di dalam kolam itu. ZFS menggunakan model memori malloc ()


dan gratis () untuk mengalokasikan dan melepaskan penyimpanan

untuk setiap sistem file karena blok digunakan dan dibebaskan dalam

sistem file. Akibatnya, tidak ada batasan buatan pada penggunaan

penyimpanan dan tidak perlu merelokasi sistem file antara volume

atau mengubah ukuran volume. ZFS memberikan kuota untuk

membatasi ukuran sistem file dan reservasi untuk memastikan

bahwa sistem file dapat tumbuh dengan jumlah tertentu, tetapi

variabel-variabel tersebut dapat diubah oleh pemilik sistem file kapan

saja. Gambar 14 (a) menggambarkan volume tradisional dan sistem

file, dan Gambar 14 (b) menunjukkan model ZFS.

(Gambar 14).
8 Stable- Storage Implementation

Menurut definisi, informasi yang berada dalam penyimpanan yang

stabil tidak pernah hilang. Untuk mengimplementasikan penyimpanan

seperti itu, kita perlu mereplikasi informasi yang diperlukan pada

beberapa perangkat penyimpanan (biasanya disk) dengan mode

kegagalan independen. Kita juga perlu mengkoordinasikan penulisan

update dengan cara yang menjamin bahwa kegagalan selama update

tidak akan meninggalkan semua salinan dalam keadaan rusak dan

bahwa, ketika kita pulih dari kegagalan, kita bisa memaksa semua

salinan ke konsisten dan nilai yang benar, bahkan jika kegagalan lain

terjadi selama pemulihan. Pada bagian ini, kita membahas bagaimana

untuk memenuhi kebutuhan tersebut.

Hasil penulisan disk di salah satu dari tiga hasil:

1. Selesainya penyelesaian. Data ditulis dengan benar pada disk.

2. Kegagalan sebagian. Kegagalan terjadi di tengah transfer,

sehingga hanya beberapa sektor yang ditulis dengan data baru,

dan sektor yang ditulis selama kegagalan mungkin telah rusak.

3. Kegagalan total. Kegagalan terjadi sebelum penulisan disk dimulai,

jadi nilai data sebelumnya pada disk tetap utuh.

Setiap kali kegagalan terjadi saat menulis blok, sistem perlu

mendeteksi dan memohon prosedur pemulihan untuk mengembalikan

blok ke keadaan yang konsisten. Untuk melakukan itu, sistem harus


mempertahankan dua blok fisik untuk setiap blok logis. Operasi output

dijalankan sebagai berikut:

1. Tulis informasi ke blok fisik pertama.

2. Ketika penulisan pertama selesai dengan sukses, tulis informasi

yang sama ke blok fisik kedua.

3. Deklarasikan operasi selesai hanya setelah penulisan kedua

selesai dengan sukses.

Selama pemulihan dari kegagalan, setiap pasangan blok fisik

diperiksa. Jika keduanya sama dan tidak ada kesalahan yang terdeteksi,

maka tidak diperlukan tindakan lebih lanjut. Jika salah satu blok berisi

kesalahan terdeteksi maka kita ganti isinya dengan nilai blok lainnya. Jika

blok tidak mengandung kesalahan terdeteksi, tetapi blok berbeda dalam

konten, maka kita mengganti isi dari blok pertama dengan yang kedua.

Prosedur pemulihan ini memastikan bahwa penulisan ke penyimpanan

yang stabil berhasil atau tidak menghasilkan perubahan. Kita dapat

memperluas prosedur ini dengan mudah untuk memungkinkan

penggunaan sejumlah besar salinan dari setiap penyimpanan stabil.

Meskipun memiliki sejumlah besar salinan lebih lanjut mengurangi

kemungkinan kegagalan, biasanya masuk akal untuk mensimulasikan

penyimpanan stabil hanya dengan dua salinan. Data dalam penyimpanan

stabil dijamin aman kecuali kegagalan menghancurkan semua salinan.

Karena menunggu penulisan disk untuk menyelesaikan (sinkron I / O)

memakan waktu, banyak array penyimpanan menambahkan NVRAM


sebagai cache. Karena memori tidak menyala (biasanya memiliki daya

baterai untuk mencadangkan daya unit), memori dapat dipercaya untuk

menyimpan data dalam perjalanan ke disk. Dengan demikian dianggap

sebagai bagian dari penyimpanan stabil. Tulisannya jauh lebih cepat

daripada disk, jadi kinerjanya sangat meningkat.

Anda mungkin juga menyukai