Apa artinya "menyelaraskan" partisi?

Jawaban:

15

Menyelaraskan partisi berarti menyelaraskannya agar sesuai dengan struktur blok yang sebenarnya mendasarinya.

Untuk waktu yang lama sekarang hard disk telah menggunakan blok 512 byte. Karena ini telah berlangsung lama, sekarang hampir tidak mungkin untuk mengubah ukuran blok. Terlalu banyak perangkat lunak yang perlu diperbaiki.

Pada SSD, ukuran blok sebenarnya bisa 128 KB. Pada array RAID mungkin 64 KB. Pada drive format lanjutan akan 4 KB.

Untuk kompatibilitas mundur, drive terus bekerja dengan blok 512 byte. Tetapi karena alasan kinerja, sistem Anda harus benar-benar mengetahui ukuran blok yang sebenarnya.

Salah satu perubahan kinerja yang paling mudah untuk dilakukan adalah menyelaraskan partisi drive dengan ukuran blok yang sebenarnya sehingga ketika OS Anda menulis 4 KB atau 64 KB atau 128 KB itu menulis blok penuh.

Jika partisi tidak sejajar maka hasilnya adalah menulis 512 byte ke blok pertama dan 4K - 512 byte ke blok kedua, memaksa disk / SSD / RAID untuk melakukan dua siklus baca-modifikasi-tulis alih-alih satu tulis.

Zan Lynx
sumber
Apakah Anda punya saran di unix.stackexchange.com/questions/248939/…
ART
@AnkurTank: Tidak, pertanyaan di sana sepertinya tertutup dengan baik.
Zan Lynx
Terima kasih atas perhatian Anda, satu-satunya yang tersisa di sana adalah cara mengonfirmasi bahwa partisi diselaraskan. Karena bagi saya parted masih mengeluh bahwa partisi tidak selaras. Selain itu saya mencoba menggunakan alat lain misalnya gdisk, tetapi saya tidak dapat melakukan cross compile untuk. Jadi saya pikir jika Anda memiliki saran tentang cara memverifikasi yang akan membantu.
ART
3

Partisi adalah urutan blok , dan oleh konvensi lama satu blok adalah 512 byte.

Jadi sebuah partisi dapat dimulai pada kelipatan 512 byte di dalam disk, "dilihat" sebagai string byte yang sangat panjang.

Perangkat keras disk yang mendasarinya, meskipun, yang awalnya memiliki ukuran sektor 512 byte yang sama, sekarang menggunakan ukuran yang lebih besar untuk efisiensi. Katakanlah 4096 byte.

Untuk alasan kompatibilitas, firmware yang berdiri di antara OS dan perangkat keras masih "berbicara dalam sektor". Jadi Anda bertanya sektor pertama, dan perangkat keras mengambil blok pertama (4096 byte), dan firmware mengekstrak dan memberikan potongan yang sesuai. Anda bertanya blok kedua dan blok mungkin diambil dari cache.

Sejauh ini ketidakcocokan ukuran sektor tidak memiliki kontra.

Tetapi OS juga menggunakan blok (biasanya disebut cluster ) untuk efisiensi, dan akan menyelaraskannya ke partisi. Jadi cluster 4-sektor akan terdiri dari sektor 5, 6, 7 dan 8.

Ketika OS meminta sistem file cluster # 2, firmware akan ditanya untuk sektor logis 5, 6, 7, dan 8. Jika mereka semua berada di blok disk yang sama , maka disk harus melakukan SATU membaca.

Tetapi jika partisi dimulai pada sektor "salah", kluster pertama dalam sistem file misalnya akan berakhir, menyederhanakan, pada sektor 2, 3, 4 dan 5. Dan mereka kemudian mungkin menjadi setengah di blok disk pertama (1 -2-3-4), setengah di babak kedua (5-6-7-8).

Anda sekarang perlu membaca satu lagi . Untuk rasio OS-ke-disk 1: 1, ini sama dengan menggandakan pembacaan. Jika rasio OS-ke-disk adalah 2: 1, sebuah cluster adalah dua blok perangkat keras, Anda akan membutuhkan 2 + 1 = 3 bacaan, penalti 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

Di atas, sebuah cluster adalah 4 blok perangkat keras (rasio 4: 1) masing-masing 2 sektor. Menyelaraskan pada sektor "rata" berarti bahwa untuk membaca sebuah kluster, 8 sektor tersebut dibaca diterjemahkan menjadi 4 blok dibaca. Menyelaraskan pada sektor ganjil berarti bahwa pembacaan 8 sektor yang sama membutuhkan 4 + 1 = 5 pembacaan blok, penalti kinerja 25% (Anda menambahkan satu baca setiap empat).

Jika Anda memiliki disk yang tidak selaras dengan rasio 4: 1, menyelaraskannya akan membuatnya 20% lebih cepat (Anda menghemat satu baca setiap 5).

Untuk membuat partisi "sejajar", Anda dapat memindahkan / mengatur offsetnya dari awal disk ke kelipatan 512b-sektor yang sesuai, atau (tergantung pada alat) Anda dapat memasukkan partisi kecil di awal disk, dengan ukuran sedemikian rupa sehingga partisi berikutnya dimulai tepat pada batas sektor disk. Dalam kasus kedua ini, sementara secara teori Anda membutuhkan paling banyak sektor N-1, yaitu sangat sedikit kilobyte, dalam praktiknya Anda mungkin perlu membuang beberapa ratus kilobyte, mungkin seluruh megabita, untuk memeras kinerja maksimal dari Anda hard drive multi-gigabyte.

(Anda mungkin dapat memulihkan ruang itu, dan banyak lagi, dengan memilih ukuran kluster OS dengan benar ).

LSerni
sumber
1
Membaca tidak terlalu buruk, ya Anda harus membaca sedikit data tambahan tetapi membaca tiga blok yang berdekatan tidak memerlukan biaya lebih banyak waktu daripada membaca dua. Masalah sebenarnya adalah menulis, untuk menulis bagian yang lebih kecil dari ukuran blok yang mendasarinya memerlukan membaca data, menunggu disk berputar secara penuh dan kemudian menulis ulang.
plugwash
1
Juga tidak perlu membuat partisi tambahan, tidak ada aturan bahwa semua ruang pada disk harus dipartisi.
plugwash
2

Drive hampir selalu dibagi ke dalam sektor logis 512 byte, ukuran lain dimungkinkan tetapi jarang digunakan karena masalah kompatibilitas. Dengan hard drive lama, ini adalah sektor terpisah yang dapat ditulis secara individual.

Sampai pertengahan 2000-an partisi secara tradisional disejajarkan dengan batas "silinder". Untuk alasan historis, sebuah "silinder" biasanya 63 sektor. Sektor 0 berisi sektor boot dan tabel parition. Sektor-sektor belakangan dalam silinder 0 terkadang meneruskan informasi tambahan untuk bootloader. Partisi pertama biasanya dimulai pada awal silinder 1.

Sebagian besar filesystem mengelompokkan sektor ke dalam blok yang lebih besar (kadang-kadang disebut "cluster"). Ini biasanya berukuran 4KiB.

Pada beberapa titik, vendor mengandalkan itu akan lebih efisien jika mereka juga menggunakan sektor fisik 4K tetapi untuk alasan kompatibilitas mereka menjaga ukuran sektor logis pada 512 byte. Jika tuan rumah membaca atau menulis seluruh sektor fisik sekaligus semuanya cepat. Jika bagian yang dibacanya masih cepat karena drive dapat membuang data yang tidak diinginkan. Namun jika tuan rumah hanya menulis bagian dari sektor fisik, drive harus membaca sektor fisik, menggabungkan data yang dibaca dengan data dari host dan kemudian menulis ulang sektor yang dimodifikasi. Itu berarti menunggu drive berputar ke posisi dua kali daripada satu kali.

Ini berfungsi dengan baik jika kluster 4K dari sistem file diselaraskan dengan sektor fisik 4K pada drive. Sayangnya cara tradisional untuk mempartisi drive berarti bahwa partisi pertama pada dasarnya dijamin untuk tidak selaras dan kemudian partisi hanya memiliki peluang 1 banding 8 untuk diselaraskan. Oleh karena itu, vendor drive format lanjut harus menjalankan alat untuk membantu orang menyelaraskan kembali partisi mereka.

Pertimbangan serupa dapat berlaku dengan array raid dan SSD. Sementara raid stripe kemungkinan jauh lebih besar dari satu cluster filesystem tunggal, beberapa filesystem mungkin memiliki wilayah atau yang serupa yang disejajarkan dengan kekuatan dua batas.

Praktek normal saat ini adalah untuk menyelaraskan parisi dengan batas 1MiB yang merupakan kekuatan dua yang cukup besar untuk menjadi kelipatan dari semua ukuran blok umum.

plugwash
sumber
0

Tidak tahu apakah ini membantu, tetapi pemahaman saya adalah bahwa penyelarasan partisi adalah ketika Anda menyelaraskan partisi tertentu dengan unit strip RAID yang mendasarinya.

Rupanya, kinerja mungkin payah ketika Anda menggunakan RAID berbasis perangkat keras atau berbasis perangkat lunak; masalah dapat muncul jika lokasi awal partisi tidak selaras dengan batas unit stripe di partisi disk yang dibuat pada RAID.

Bergantung pada faktorisasi untuk membuat kluster volume, kluster volume dapat dibuat di atas batas unit strip bukannya di sebelah batas unit strip. Perilaku ini dapat menyebabkan partisi yang tidak selaras .

Saya mungkin jauh dan ini tidak ada hubungannya dengan RAID;)

LuxuryMode
sumber