Kloning blok pada ReFS
Kloning blok menginstruksikan sistem file untuk menyalin rentang byte file atas nama aplikasi, di mana file tujuan mungkin sama dengan, atau berbeda dari, file sumber. Operasi penyalinan tradisional, sayangnya, mahal karena memicu baca dan tulis mahal ke data fisik yang mendasar.
Kloning blok di ReFS, bagaimanapun, melakukan salinan sebagai operasi metadata biaya rendah daripada membaca dari dan menulis ke data file. Karena ReFS memungkinkan beberapa file untuk berbagi kluster logis yang sama (lokasi fisik pada volume), operasi salin hanya perlu memetakan ulang wilayah file ke lokasi fisik terpisah, mengonversi operasi fisik yang mahal ke yang cepat dan logis. Ini memungkinkan salinan selesai lebih cepat dan menghasilkan lebih sedikit I/O ke penyimpanan yang mendasar. Peningkatan ini juga menguntungkan beban kerja virtualisasi, karena .vhdx
operasi penggabungan titik pemeriksaan dipercepat secara dramatis saat menggunakan operasi klon blok. Selain itu, karena beberapa file dapat berbagi kluster logis yang sama, data identik tidak disimpan secara fisik beberapa kali, meningkatkan kapasitas penyimpanan.
Cara kerjanya
Kloning blok pada ReFS mengonversi operasi data file menjadi operasi metadata. Untuk membuat pengoptimalan ini, ReFS memperkenalkan jumlah referensi ke dalam metadatanya untuk wilayah yang disalin. Jumlah referensi ini mencatat jumlah wilayah file berbeda yang mereferensikan wilayah fisik yang sama. Ini memungkinkan beberapa file untuk berbagi data fisik yang sama:
Dengan menyimpan jumlah referensi untuk setiap kluster logis, ReFS tidak merusak isolasi antar file: menulis ke wilayah bersama memicu mekanisme alokasi-saat-tulis, di mana ReFS mengalokasikan wilayah baru untuk penulisan masuk. Mekanisme ini mempertahankan integritas kluster logis bersama.
Contoh
Misalkan ada dua file, X dan Y, di mana setiap file terdiri dari tiga wilayah, dan setiap wilayah memetakan untuk memisahkan kluster logis.
Sekarang misalkan aplikasi mengeluarkan operasi klon blok dari File X ke File Y, untuk wilayah A dan B yang akan disalin di offset wilayah E. Status sistem file berikut akan menghasilkan:
Status sistem file ini mengungkapkan duplikasi wilayah kloning blok yang berhasil. Karena ReFS melakukan operasi penyalinan ini dengan hanya memperbarui VCN ke pemetaan LCN, tidak ada data fisik yang dibaca, juga bukan data fisik dalam File Y yang ditimpa. File X dan Y sekarang berbagi kluster logis, yang tercermin oleh jumlah referensi dalam tabel. Karena tidak ada data yang disalin secara fisik, ReFS mengurangi konsumsi kapasitas pada volume.
Sekarang misalkan aplikasi mencoba menimpa wilayah A di File X. ReFS menduplikasi wilayah bersama, memperbarui jumlah referensi dengan tepat, dan melakukan penulisan masuk ke wilayah yang baru diduplikasi. Ini memastikan bahwa isolasi antara file dipertahankan.
Setelah memodifikasi penulisan, wilayah B masih dibagikan oleh kedua file. Jika wilayah A lebih besar dari kluster, hanya kluster yang dimodifikasi yang akan diduplikasi, dan bagian yang tersisa akan tetap dibagikan.
Pembatasan dan komentar fungsionalitas
- Wilayah sumber dan tujuan harus dimulai dan berakhir pada batas kluster.
- Panjang wilayah kloning harus kurang dari 4 GB.
- Jumlah maksimum wilayah file yang dapat memetakan ke wilayah fisik yang sama adalah 8175.
- Wilayah tujuan tidak boleh melewati akhir file. Jika aplikasi ingin memperluas tujuan dengan data kloning, aplikasi harus terlebih dahulu memanggil SetEndOfFile.
- Jika wilayah sumber dan tujuan berada dalam file yang sama, wilayah tersebut tidak boleh tumpang tindih. (Aplikasi mungkin dapat melanjutkan dengan membagi operasi klon blok menjadi beberapa klon blok yang tidak lagi tumpang tindih).
- File sumber dan tujuan harus berada pada volume ReFS yang sama.
- File sumber dan tujuan harus memiliki pengaturan Aliran Integritas yang sama.
- Jika file sumber jarang, file tujuan juga harus jarang.
- Operasi klon blok memutus Kunci Oportunistik Bersama (juga dikenal sebagai Kunci Oportunistik Tingkat 2).
- Volume ReFS harus telah diformat dengan Windows Server 2016, dan jika Pengklusteran Failover sedang digunakan, Tingkat Fungsi pengklusteran harus Windows Server 2016 atau yang lebih baru pada waktu format.
- Dimulai dengan build Windows 11 24H2 dan Windows Server 2025, kloning blok terjadi secara asli dalam operasi penyalinan Windows yang didukung.