Bagikan melalui


Transfer Data Terbongkar Windows Storage

Windows Offloaded Data Transfer (ODX) adalah fitur yang mempercepat operasi penyalinan dan pemindahan server. Ini tersedia mulai windows Server 2012 dan didukung pada volume NTFS.

Artikel ini menjelaskan ODX dari perspektif perangkat penyimpanan. Untuk informasi yang terkait dengan sistem file dan minifilter, lihat Transfer Data Yang Dibongkar.

Gambaran Umum

Daripada menyalin data dalam jumlah besar selama transfer file, Windows ODX memperkenalkan operasi yang ditokenisasi untuk memindahkan data pada perangkat penyimpanan. File sumber dan file tujuan dapat berada di salah satu lokasi berikut:

  • Pada volume yang sama.
  • Pada dua volume berbeda yang dihosting komputer yang sama.
  • Pada volume lokal dan volume jarak jauh melalui Blok Pesan Server (SMB2 atau SMB3).
  • Pada dua volume pada dua komputer yang berbeda melalui SMB2 atau SMB3.

Proses operasi penyalinan offload pada perangkat penyimpanan berkemampuan ODX ditampilkan dalam diagram berikut.

Salin operasi offload menggunakan ODX.

  1. Aplikasi salin mengirimkan permintaan baca offload ke manajer salinan perangkat penyimpanan sumber.
  2. Manajer salinan sumber mengembalikan token. Token adalah representasi data (ROD) yang akan disalin.
  3. Aplikasi mengirimkan permintaan tulis offload dengan token ke manajer salinan perangkat penyimpanan tujuan.
  4. Manajer salinan array penyimpanan memindahkan data dari perangkat sumber ke perangkat tujuan dan mengembalikan hasil tulis offload ke aplikasi.

Mengidentifikasi Sumber dan Tujuan yang Mampu ODX

Untuk mendukung ODX, array penyimpanan harus menerapkan spesifikasi standar T10 terkait untuk array penyimpanan berkemampuan ODX, termasuk operasi baca dan tulis offload dengan token. Selama enumerasi perangkat LUN (boot sistem atau peristiwa plug-and-play), Windows mengumpulkan atau memperbarui informasi kemampuan ODX dari perangkat target penyimpanan melalui langkah-langkah berikut.

  1. Kemampuan offload salinan kueri.
  2. Kumpulkan parameter yang diperlukan untuk operasi dan batasan offload salinan.

Secara default, Windows mencoba jalur ODX terlebih dahulu untuk operasi salin jika LUN sumber dan tujuan berkemampuan ODX. Jika perangkat penyimpanan gagal dalam permintaan ODX awal, Windows menandai kombinasi LUN sumber dan tujuan sebagai jalur "tidak mampu ODX", dan mengikuti jalur kode file salinan warisan.

Operasi Baca/Tulis ODX

Adopsi dan API Perintah Sinkron

Permintaan tulis offload besar dipisahkan menggunakan algoritma berikut untuk memastikan penulisan offload sinkron yang kuat.

  • Jika perangkat penyimpanan target tidak memberikan ukuran transfer yang optimal, atur ukuran transfer optimal pada 64 MB.
  • Jika ukuran transfer optimal yang ditetapkan oleh perangkat target lebih besar dari 256 MB, atur ukuran transfer optimal pada 256 MB.
  • Ukuran transfer optimal yang ditentukan oleh perangkat target penyimpanan lebih besar dari nol dan kurang dari 256 MB.

Perintah SCSI baca dan offload offload yang sinkron mengurangi komplikasi skenario failover MPIO dan kluster. Windows mengharapkan manajer penyalinan menyelesaikan perintah SCSI baca/tulis offload sinkron dalam waktu 4 detik.

Aplikasi dapat menggunakan API FSCTL, DSM IOCTL, atau SCSI_PASS_THROUGH untuk berinteraksi dengan array penyimpanan dan menjalankan operasi offload salinan. Untuk menghindari kerusakan data atau ketidakstabilan sistem, Windows membatasi aplikasi untuk menulis langsung ke volume yang dipasang sistem file tanpa terlebih dahulu mendapatkan akses eksklusif ke volume. Pembatasan ini diperlukan karena kondisi penulisan ke volume mungkin bertabrakan dengan penulisan sistem file. Ketika tabrakan tersebut terjadi, konten volume mungkin dibiarkan dalam keadaan tidak konsisten.

Operasi Baca Offload

Permintaan baca offload aplikasi dapat menentukan masa pakai token (waktu habis tidak aktif). Jika aplikasi mengatur masa pakai token ke nol, timer tidak aktif default digunakan sebagai masa pakai token. Manajer salinan array penyimpanan mempertahankan dan memvalidasi token sesuai dengan nilai dan kredensial batas waktu tidak aktifnya. Host Windows juga membatasi jumlah fragmen file hingga 64. Jika permintaan baca offload terdiri dari lebih dari 64 fragmen, Windows gagal menyalin permintaan offload dan kembali ke operasi penyalinan tradisional.

Setelah menyelesaikan permintaan baca offload, manajer salinan menyiapkan representasi token data (ROD) untuk perintah hasil baca offload penerimaan. Bidang token ROD menentukan representasi point-in-time dari data pengguna dan informasi perlindungan. ROD dapat menjadi data pengguna dalam format "buka secara eksklusif" atau "buka dengan berbagi". Manajer salinan dapat membatalkan token sesuai dengan pengaturan kebijakan ROD-nya. Jika ROD "terbuka secara eksklusif" untuk operasi offload salinan, token ROD dapat dibatalkan saat ROD dimodifikasi atau dipindahkan. Jika ROD dalam format "buka dengan berbagi", token ROD tetap valid saat ROD dimodifikasi. Token ROD adalah 512 byte dengan format berikut:

Ukuran dalam Byte Isi Token
4 Jenis Token ROD
508 ROD Token ID

Karena token ROD diberikan dan dikonsumsi hanya oleh array penyimpanan, formatnya buram, unik, dan sangat aman. Jika token dimodifikasi, tidak divalidasi, atau kedaluwarsa, manajer salin dapat membatalkan token selama operasi penulisan offload. Token ROD yang dikembalikan dari operasi baca offload memiliki nilai batas waktu tidak aktif untuk menunjukkan jumlah detik bahwa manajer salinan harus menjaga token tetap valid untuk penggunaan Tulis Menggunakan Token berikutnya.

Operasi Tulis Offload

Setelah aplikasi menerima token ROD dari manajer salinan, aplikasi mengirimkan permintaan tulis offload dengan token ROD ke manajer salinan array penyimpanan. Ketika perintah tulis offload sinkron dikirim ke perangkat target, Windows mengharapkan manajer salin untuk menyelesaikan perintah dalam waktu 4 detik. Jika perintah dihentikan karena waktu perintah habis atau kondisi kesalahan lainnya, Windows gagal perintah. Aplikasi kembali ke operasi penyalinan warisan sesuai dengan kode status yang dikembalikan.

Permintaan tulis offload dapat diselesaikan dengan satu atau beberapa perintah Hasil Tulis Offload Penerimaan. Jika penulisan offload selesai sebagian, manajer penyalinan akan kembali dengan perkiraan penundaan dan jumlah jumlah transfer untuk menunjukkan kemajuan penyalinan. Jumlah jumlah transfer menentukan jumlah blok logis berdekatan yang ditulis tanpa kesalahan dari sumber ke media tujuan. Manajer penyalinan dapat melakukan penulisan offload dalam pola berurutan atau sebar/kumpulkan.

Ketika kegagalan penulisan terjadi, kemajuan penyalinan menghitung blok logis yang berdekatan dari blok logis pertama ke blok kegagalan. Aplikasi klien atau mesin salin melanjutkan penulisan offload dari blok kegagalan tulis. Ketika penulisan offload selesai, manajer salinan menyelesaikan perintah Terima Informasi Token ROD dengan:

  • Estimasi penundaan pembaruan status diatur ke nol.
  • Progres jumlah transfer data sebesar 100 persen.

Jika hasil tulis offload penerimaan mengembalikan kemajuan yang sama dari jumlah transfer data, Windows gagal operasi salin kembali ke aplikasi setelah empat kali percobaan ulang.

Aplikasi klien juga dapat melakukan operasi penulisan offload dengan token ROD terkenal, yang merupakan token ROD yang telah ditentukan sebelumnya dengan pola data dan format token yang diketahui. Salah satu implementasi umum disebut token nol. Aplikasi klien dapat menggunakan token nol untuk mengisi satu atau beberapa rentang blok logis dengan nol. Jika token terkenal tidak didukung atau dikenali, manajer salin gagal permintaan tulis offload dengan "Token Tidak Valid". Token ROD terkenal adalah 512 byte dengan format berikut:

Ukuran dalam Byte Isi Token
4 Jenis Token ROD
2 Pola Terkenal
506 ROD Token ID

Dalam penulisan offload dengan token ROD terkenal, aplikasi klien tidak dapat menggunakan baca offload untuk meminta token terkenal. Manajer salinan memverifikasi dan mempertahankan token ROD terkenal sesuai dengan kebijakannya sendiri.

Parameter Penyetelan Performa Implementasi ODX

Performa ODX tidak bergantung pada kecepatan tautan transportasi jaringan server klien atau jaringan area penyimpanan (SAN) antara server dan array penyimpanan. Manajer salinan dan server perangkat array penyimpanan memindahkan data.

Tidak setiap salinan offload manfaat dari teknologi ODX. Misalnya, manajer salinan array penyimpanan iSCSI 1 Gbit dapat menyelesaikan salinan file 3 GB dalam waktu 10 detik, dan tingkat transfer data akan lebih besar dari 300 MB per detik. Tingkat transfer data sudah mengungguli kecepatan transfer teoritis maksimum antarmuka Ethernet 1 Gbit.

Selain itu, ada kemungkinan bahwa performa penyalinan untuk file dengan ukuran tertentu mungkin tidak mendapat manfaat dari teknologi ODX. Untuk mengoptimalkan performa, penggunaan ODX dapat dibatasi untuk ukuran file minimum yang diizinkan dan panjang salinan maksimum. Catatan:

  • Windows menetapkan persyaratan ukuran file minimum untuk operasi offload salin pada 256 KB di mesin salinan. Jika file kurang dari 256 KB, mesin salin kembali ke proses penyalinan warisan.

  • Host Windows menggunakan ukuran transfer token maksimum dan jumlah transfer optimal untuk menyiapkan ukuran transfer optimal dari perintah SCSI baca atau tulis offload. Ukuran transfer total dalam jumlah blok tidak boleh melebihi ukuran transfer token maksimum. Jika array penyimpanan tidak melaporkan jumlah transfer yang optimal, Windows menggunakan 64 MB sebagai jumlah default.

Parameter panjang transfer optimal dan maksimum menentukan jumlah blok optimal dan maksimum dalam satu deskriptor rentang. Aplikasi offload salin dapat mematuhi parameter ini untuk mencapai performa transfer file yang optimal.

Penanganan Kesalahan ODX dan Dukungan Ketersediaan Tinggi

Ketika operasi ODX gagal dalam permintaan penyalinan file, mesin salin dan sistem file Windows (NTFS) kembali ke operasi penyalinan warisan. Jika offload salinan gagal di tengah operasi penulisan offload, mesin salin dan NTFS melanjutkan dengan operasi penyalinan warisan dari titik kegagalan pertama dalam penulisan offload.

Penanganan Kesalahan ODX

ODX menggunakan algoritma penanganan kesalahan yang kuat sesuai dengan fitur array penyimpanan. Jika offload salinan gagal di jalur berkemampuan ODX, host Windows mengharapkan aplikasi untuk kembali ke operasi penyalinan warisan. Pada titik ini, mesin salinan Windows telah menerapkan mekanisme "fallback ke salinan tradisional". Setelah kegagalan offload salinan, NTFS menandai LUN sumber dan tujuan sebagai tidak mampu ODX selama tiga menit. Setelah periode waktu ini berlalu, mesin salinan Windows mencoba kembali operasi ODX. Array penyimpanan dapat menggunakan fitur ini untuk menonaktifkan sementara dukungan ODX di beberapa jalur selama situasi yang sangat menegangkan.

Failover ODX di Konfigurasi Server Kluster dan MPIO

Operasi baca dan tulis offload harus diselesaikan atau dibatalkan dari tautan penyimpanan yang sama (I_T nexus).

Ketika MPIO atau failover server kluster terjadi selama operasi baca atau tulis offload sinkron, Windows menangani failover sebagai berikut:

  • Jika failover jalur MPIO terjadi, Windows mencoba kembali perintah ODX yang gagal. Jika perintah gagal lagi, Windows:

    • Memulai failover node server kluster saat bagian dari server kluster.
    • Mengeluarkan reset LUN ke perangkat penyimpanan dan mengembalikan status kegagalan I/O ke aplikasi jika failover server kluster bukan opsi.
  • Dalam konfigurasi server kluster, layanan penyimpanan kluster gagal ke node kluster pilihan berikutnya dan kemudian melanjutkan layanan penyimpanan kluster. Aplikasi offload harus sadar kluster untuk dapat mencoba kembali perintah baca/tulis offload setelah failover layanan penyimpanan kluster.

Jika perintah baca atau tulis offload gagal setelah jalur MPIO dan failover node kluster, Windows mengeluarkan reset LUN ke perangkat penyimpanan setelah failover. Perangkat penyimpanan mengakhiri semua perintah yang luar biasa dan operasi yang tertunda pada LUN.

Saat ini, Windows tidak mengeluarkan perintah SCSI baca atau tulis offload asinkron dari tumpukan penyimpanan.

Model Penggunaan ODX

ODX di seluruh Disk Fisik, Hard Disk Virtual, dan Disk Bersama SMB

Untuk melakukan operasi ODX, server aplikasi harus memiliki akses ke LUN sumber dan LUN tujuan dengan hak istimewa baca/tulis. Aplikasi offload salinan mengeluarkan permintaan baca offload ke LUN sumber dan menerima token dari manajer salinan LUN sumber. Aplikasi offload salinan menggunakan token untuk mengeluarkan permintaan tulis offload ke LUN tujuan. Manajer salinan kemudian memindahkan data dari LUN sumber ke LUN tujuan melalui jaringan penyimpanan. Diagram berikut mengilustrasikan target sumber dan tujuan yang didukung paling dasar untuk transfer data yang dibongkar.

Target sumber dan tujuan ODX dasar yang didukung.

Operasi ODX dengan Satu Server

Dalam konfigurasi server tunggal, aplikasi offload salinan mengeluarkan permintaan baca dan tulis offload dari sistem server yang sama.

Server sumber (atau VM sumber) memiliki akses ke LUN sumber (VHD atau Disk Fisik) dan LUN tujuan (VHD atau Disk Fisik). Aplikasi offload salinan mengeluarkan permintaan baca offload ke LUN sumber dan menerima token dari LUN sumber. Aplikasi offload salinan kemudian menggunakan token untuk mengeluarkan permintaan tulis offload ke LUN tujuan. Manajer salin memindahkan data dari LUN sumber ke LUN tujuan dalam array penyimpanan yang sama.

Operasi ODX dengan Dua Server

Dalam konfigurasi dua server, ada dua server dan beberapa array penyimpanan yang dikelola oleh manajer salinan yang sama.

  • Satu server (atau VM) adalah host LUN sumber, dan server lain (atau VM) adalah host LUN tujuan. Server sumber berbagi LUN sumber dengan klien aplikasi melalui protokol SMB, dan server tujuan juga berbagi LUN tujuan dengan klien aplikasi melalui protokol SMB. Klien aplikasi dengan demikian memiliki akses ke LUN sumber dan LUN tujuan.
  • Array penyimpanan sumber dan tujuan dikelola oleh manajer salinan yang sama dalam konfigurasi SAN.
  • Dari sistem klien aplikasi, aplikasi offload salinan mengeluarkan permintaan baca offload ke LUN sumber dan menerima token dari LUN sumber, lalu mengeluarkan permintaan tulis offload dengan token ke LUN tujuan. Manajer salin memindahkan data dari LUN sumber ke LUN tujuan di dua array penyimpanan yang berbeda di dua lokasi berbeda.

Migrasi Data Besar-besaran

Migrasi data besar-besaran adalah proses mengimpor sejumlah besar data seperti rekaman database, spreadsheet, file teks, dokumen yang dipindai, dan gambar ke sistem baru. Migrasi data mungkin disebabkan oleh peningkatan sistem penyimpanan, mesin database baru, atau perubahan dalam proses aplikasi atau bisnis. ODX dapat digunakan untuk memigrasikan data dari sistem penyimpanan warisan ke sistem penyimpanan baru ketika manajer salinan sistem baru juga dapat mengelola sistem warisan.

  • Satu server adalah host sistem penyimpanan warisan, dan server lainnya adalah host sistem penyimpanan baru. Server sumber berbagi LUN sumber sebagai klien aplikasi migrasi data melalui protokol SMB, dan server tujuan berbagi LUN tujuan sebagai klien aplikasi migrasi data melalui protokol SMB. Klien aplikasi dengan demikian memiliki akses ke LUN sumber dan tujuan.
  • Sistem penyimpanan warisan dan sistem penyimpanan baru dikelola oleh manajer salinan yang sama dalam konfigurasi SAN.
  • Dari sistem klien aplikasi migrasi data, aplikasi offload salinan mengeluarkan permintaan baca offload ke LUN sumber dan menerima token dari LUN sumber. Aplikasi kemudian mengeluarkan permintaan tulis offload dengan token ke LUN tujuan. Manajer salinan memindahkan data dari LUN sumber ke LUN tujuan di dua sistem penyimpanan yang berbeda di dua lokasi yang berbeda.
  • Migrasi data besar-besaran juga dapat dioperasikan dengan satu server di lokasi yang sama.

Transfer Data yang Dikontrol Host dalam Perangkat Penyimpanan Berjenjang

Perangkat penyimpanan berjenjang mengategorikan data ke dalam berbagai jenis media penyimpanan untuk mengurangi biaya, meningkatkan performa, dan mengatasi masalah kapasitas. Kategori dapat didasarkan pada tingkat perlindungan yang diperlukan, persyaratan performa, frekuensi penggunaan, dan pertimbangan lainnya.

Strategi migrasi data memainkan peran penting dalam hasil akhir dari strategi penyimpanan berjenjang. ODX memungkinkan migrasi data yang dikontrol host dalam perangkat penyimpanan berjenjang. Contoh berikut menjelaskan ODX di perangkat penyimpanan dua tingkat:

  • Server adalah host sistem penyimpanan berjenjang. LUN sumber adalah perangkat penyimpanan Tier1, dan LUN tujuan adalah perangkat penyimpanan Tier2.
  • Manajer salinan yang sama mengelola semua perangkat penyimpanan berjenjang.
  • Dari sistem server, aplikasi migrasi data mengeluarkan permintaan baca offload ke LUN sumber dan menerima token dari LUN sumber. Aplikasi ini kemudian mengeluarkan permintaan tulis offload dengan token ke LUN tujuan. Manajer salin memindahkan data dari LUN sumber ke LUN tujuan di dua perangkat penyimpanan tingkat yang berbeda.
  • Ketika tugas migrasi data selesai, aplikasi menghapus data dari perangkat penyimpanan Tier1 dan mengklaim kembali ruang penyimpanan.