Mass-storage Structur
1. Gambaran Umum
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
jaringan
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
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
disk, yang disebut latensi rotasi. Disk yang khas dapat mentransfer
beberapa megabyte data per detik, dan mereka memiliki waktu pencarian
tipis (diukur dalam mikron), ada bahaya bahwa head akan melakukan
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
device yang dikenal sebagai flash drive (yang merupakan tipe solid-state
drive).
Sebuah disk drive terpasang ke komputer oleh satu set kabel yang
bus (USB), dan Fibre Channel (FC). Transfer data pada bus dilakukan
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)
pentingnya hard disk solid state, atau SSD. Secara sederhana dijelaskan,
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
kecil daripada hard disk yang lebih besar, dan mungkin memiliki rentang
hidup yang lebih pendek daripada hard disk, jadi penggunaannya agak
laptop untuk membuatnya lebih kecil, lebih cepat, dan lebih hemat energi.
Karena SSD dapat jauh lebih cepat daripada disk drive magnetik,
tier cache baru, memindahkan data antara disk magnetik, SSD, dan
awal. Meskipun relatif permanen dan dapat menyimpan data dalam jumlah
disk magnetik. Selain itu, akses acak ke pita magnetik sekitar seribu kali
lebih lambat daripada akses acak ke disk magnetik, jadi pita tidak sangat
kaset dapat mengambil waktu, tetapi setelah diposisikan, tape drive dapat
Kapasitas pita sangat bervariasi, tergantung pada jenis tape drive tertentu,
lebar, termasuk 4, 8, dan 19 milimeter dan 1/4 dan 1/2 inci. Beberapa
2. Struktur Disk
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
melalui jalur itu, kemudian melalui sisa trek di silinder itu, dan kemudian
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
dengan mengganti sektor cadangan dari tempat lain pada disk. Kedua,
kerapatan bit per track seragam. Semakin jauh sebuah track berasal dari
yang dapat dipegangnya. Ketika kita bergerak dari zona luar ke zona
dalam, jumlah sektor per track menurun. Trek di zona terluar biasanya
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
meningkatnya teknologi disk, dan zona terluar dari disk biasanya memiliki
beberapa ratus sektor per track. Demikian pula, jumlah silinder per disk
3. Disk Attachment
terjadi pada sistem kecil. Cara lain adalah melalui remote host dalam
atau ATA. Arsitektur ini mendukung maksimal dua drive per I / O bus.
serial berkecepatan tinggi yang dapat beroperasi melalui serat optik atau
adalah large switches fabric yang mempunyai ruang alamat 24-bit. Varian
ruang alamat yang besar dan sifat komunikasi yang terputus, multiple host
disk drive, array RAID, dan CD, DVD, dan drive tape. Perintah I / O yang
logis target).
penyimpanan dengan tujuan khusus yang diakses dari jarak jauh melalui
sistem UNIX atau CIFS untuk mesin Windows. Panggilan prosedur jarak
biasanya jaringan area lokal yang sama (LAN) yang membawa semua lalu
antarmuka RPC.
kurang efisien dan memiliki kinerja yang lebih rendah daripada beberapa
jaringan. Masalah ini bisa sangat akut dalam instalasi klien-server besar -
antara penghuni dan penyimpanan. Sebagai salah satu contoh, jika host
biasanya memiliki lebih banyak port - serta port yang lebih mahal -
penyimpanan.
(Gambar 3)
4. Disk Scheduling
bandwidth disk yang besar. Untuk disk magnetik, waktu akses memiliki
head ke silinder yang berisi sektor yang diinginkan. Latency rotasi adalah
head disk. Bandwidth disk adalah jumlah total byte yang ditransfer, dibagi
dilayani.
dapat segera dilayani. Jika drive atau pengendali sibuk, setiap permintaan
baru untuk layanan akan ditempatkan dalam antrian permintaan tertunda
pilihan ini? Salah satu dari beberapa algoritma penjadwalan disk dapat
silinder dalam urutan itu. Jika head disk awalnya pada silinder 53,
14, 124, 65, dan akhirnya menjadi 67, untuk gerakan head total 640
permintaan untuk 122 dan 124, yang total pergerakan head dapat
dekat dengan posisi head saat ini sebelum memindahkan head jauh
saat ini. Dengan kata lain, SSTF memilih permintaan yang tertunda
dengan posisi head awal (53) adalah pada silinder 65. Setelah kita
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
algoritma FCFS, itu tidak optimal. Dalam contoh, kita bisa melakukan
layanan 65, 67, 98, 122, 124, dan 183. Strategi ini mengurangi total
Dalam algoritma SCAN, lengan disk mulai di salah satu ujung disk
ujung lain, arah gerakan head dibalik, dan servis berlanjut. head terus
disebut algoritma lift, karena lengan disk berperilaku persis seperti lift
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 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
kembali.
ujung dan membalik arah. Pada titik ini, relatif sedikit permintaan
segera di depan head, karena silinder-silinder ini baru saja diservis.
Seperti SCAN, C-SCAN memindahkan head dari salah satu ujung disk
disk. Versi SCAN dan C-SCAN yang mengikuti pola ini disebut LOOK
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
yang lebih besar. Lokasi direktori dan blok indeks juga penting. Karena
setiap file yang harus dibuka untuk digunakan, dan membuka file
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
diperlukan. Entah SSTF atau LOOK adalah pilihan yang masuk akal
5 Disk Management
manajemen disk, juga. Di sini kita membahas inisialisasi disk, boot dari
Disk magnetik baru adalah batu tulis kosong: itu hanya sebuah
data, itu harus dibagi menjadi beberapa sektor yang dapat dibaca dan
ditulis oleh pengontrol disk. Proses ini disebut format tingkat rendah,
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
tersebut telah rusak dan sektor disk mungkin buruk (Bagian 10.5.3).
cukup, jika hanya beberapa bit data yang telah rusak, untuk
atau ditulis.
blok logis ke sektor bebas cacat pada disk. Untuk banyak cakram
tingkat rendah, dapat juga diberi tahu berapa banyak bita ruang data
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.
sistem file. Pada langkah ini, sistem operasi menyimpan struktur file
sistem-file awal ke dalam disk. Struktur data ini mungkin termasuk peta
ROM tidak perlu inisialisasi dan berada di lokasi tetap yang dapat
karena ROMis hanya membaca, itu tidak dapat terinfeksi oleh virus
penuh disimpan di "blok boot" di lokasi tetap pada disk. Disk yang
memiliki partisi boot disebut disk boot atau disk sistem. Mari kita
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,
(yang disebut sektor boot) dan berlanjut dengan sisa proses boot, yang
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.
ditangani dengan berbagai cara. Disk yang lebih canggih lebih pintar
tentang pemulihan blok buruk. Pengontrol menyimpan daftar blok
sektor buruk secara logis dengan salah satu sektor cadangan. Skema
dengan cadangan.
Setelah itu, setiap kali sistem meminta blok logis 87, permintaan
controller.
sistem operasi! Untuk alasan ini, sebagian besar disk diformat untuk
sektor yang tergelincir. Berikut ini sebuah contoh: Misalkan blok logis
202, lalu 200 menjadi 201, dan seterusnya, hingga sektor 18 disalin ke
6 SWAP-SPACE Management
perpanjangan dari memori utama. Karena akses disk jauh lebih lambat
memori utama. Jumlah ruang swap yang diperlukan pada suatu sistem
membuang ruang disk yang dapat digunakan untuk file, tetapi tidak
mana memori virtual melebihi memori fisik yang dapat diganti. Di masa
dan sebagian besar sistem Linux menggunakan ruang swap yang jauh
lebih sedikit. Beberapa sistem operasi — termasuk Linux —
partisi swap khusus. Ruang swap ini biasanya ditempatkan pada disk
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,
secara fisik untuk file swap, tetapi biaya untuk melintasi struktur data
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
diterima karena umur data dalam ruang swap umumnya jauh lebih
mentah.
7 RAID Structure
Disk drive terus menjadi lebih kecil dan lebih murah, sehingga
peluang untuk meningkatkan laju di mana data dapat dibaca atau ditulis,
jika disk dioperasikan secara paralel. Lebih jauh lagi, pengaturan ini
mengatasi masalah kinerja dan keandalan. Di masa lalu, RAID terdiri dari
disk kecil, murah dipandang sebagai alternatif hemat biaya ke disk yang
keandalan mereka yang lebih tinggi dan tingkat transfer data yang lebih
tinggi, bukan karena alasan ekonomi. Oleh karena itu, I in RAID, yang
bahwa beberapa disk yang keluar dari satu set disk N akan gagal jauh
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,
besar data - dan tingkat kehilangan data yang tinggi tidak dapat
diterima.
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
adalah waktu rata-rata kegagalan disk individu. Yang lain adalah waktu
bercermin adalah 100, 0002 / (2 ∗ 10) = 500 ∗ 106 jam, atau 57.000
tahun!
saat yang bersamaan. Juga, cacat manufaktur dalam batch disk dapat
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
permintaan baca dapat dikirim ke salah satu disk (selama kedua disk
ganda.
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
kali ukuran normal dan, yang lebih penting, yang memiliki delapan kali
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.
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
dalam gambar, data senilai empat disk disimpan, dan disk ekstra
pemulihan kegagalan.
terkait dengan itu yang mencatat apakah jumlah bit dalam byte
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
atau lebih bit tambahan dan dapat merekonstruksi data jika satu bit
rusak.
melalui striping byte di disk. Sebagai contoh, bit pertama dari setiap
byte dapat disimpan dalam disk 1, bit kedua dalam disk 2, dan
bit koreksi kesalahan. Jika salah satu disk gagal, bit-bit sisa dari
byte dan bit-bit koreksi kesalahan terkait dapat dibaca dari disk lain
rusak, kita tahu persis sektor mana itu, dan kita dapat mengetahui
paritas bit yang sesuai dari sektor di disk lainnya. Jika paritas bit
yang tersisa sama dengan paritas yang disimpan, bit yang hilang
dengan level 2 tetapi lebih murah dalam jumlah disk ekstra yang
menulis dari satu byte tersebar di beberapa disk dengan striping data
adalah N kali secepat dengan level RAID 1. Di sisi negatif, RAID level
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.
permintaan lain untuk diproses oleh disk lain. Dengan demikian, tingkat
transfer data untuk setiap akses lebih lambat, tetapi akses baca ganda
besar tinggi, karena semua disk dapat dibaca secara paralel. Tulisan
besar juga memiliki tingkat transfer tinggi, karena data dan paritas
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
membutuhkan empat akses disk: dua untuk membaca dua blok tua
dan dua untuk menulis dua blok baru. WAFL (yang kita bahas pada
berisi angka nol, maka nilai paritas tidak berubah, dan set RAID masih
benar.
disk N dan paritas dalam satu disk. Untuk setiap blok, salah satu disk
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.
paritas untuk blok dalam disk yang sama, karena kegagalan disk akan
disk.
memberikan kinerja yang lebih baik daripada RAID 5. Hal ini biasa
diperlukan untuk penyimpanan, jadi itu juga relatif mahal. Dalam RAID
mencerminkan itu masih tersedia, seperti semua sisa disk (Gambar 12)
diimplementasikan.
fitur minimal dan masih menjadi bagian dari solusi RAID penuh.
menjadi bagian dari set RAID yang diberikan. Solusi ini murah
berbagai level dan bahkan dapat mengiris set ini menjadi volume
replikasi sinkron, setiap blok harus ditulis secara lokal dan jauh
data jika situs utama gagal, tetapi lebih cepat dan tidak memiliki
bagaimanapun, maka apa pun sistem operasi host atau fiturnya, data
host dapat direplikasi. Salah satu aspek lain dari sebagian besar
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
paling mudah untuk RAID level 1, karena data dapat disalin dari disk
lain. Untuk level lainnya, kita perlu mengakses semua disk lain dalam
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
disk gagal pertama diperbaiki lebih besar, dan itu akan menghasilkan
kehilangan data.
7.5 Ekstensi
RAID dapat memulihkan data bahkan jika salah satu kaset dalam array
menjadi unit pendek dan disiarkan bersama dengan unit paritas. Jika
salah satu unit tidak diterima karena alasan apa pun, itu dapat
berisi beberapa drive tape akan menggores data di semua drive untuk
misalnya, atau pointer dalam struktur file bisa salah. Tulisan yang tidak
yang korup. Beberapa proses lain secara tidak sengaja dapat menulis
keras, itulah berapa banyak potensi bahaya untuk data pada suatu
sistem.
dalam inode adalah checksum dari setiap blok data. Jika ada masalah
checksum yang benar dan satu dengan checksum yang salah, ZFS
akan secara otomatis memperbarui blok buruk dengan yang buruk.
kesalahan yang jauh lebih tinggi daripada yang ditemukan di set disk
RAID atau sistem file standar. Overhead tambahan yang dibuat oleh
Gambar 13
dengan dua puluh disk dibagi menjadi empat set lima disk. Setiap set
lima disk adalah set RAID level 5. Akibatnya, ada empat volume
set? Dan bagaimana jika sistem file lain membutuhkan ruang yang
seluruh set 20 disk untuk dibuat sebagai satu set RAID besar,
mengizinkan kami mengubah ukuran volume. Dalam hal ini, kita akan
Volume dapat mengubah ukuran, tetapi sistem file perlu dibuat ulang
sistem ZFS. Ruang gratis seluruh kolam tersedia untuk semua sistem
untuk setiap sistem file karena blok digunakan dan dibebaskan dalam
(Gambar 14).
8 Stable- Storage Implementation
bahwa, ketika kita pulih dari kegagalan, kita bisa memaksa semua
salinan ke konsisten dan nilai yang benar, bahkan jika kegagalan lain
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
konten, maka kita mengganti isi dari blok pertama dengan yang kedua.