Cara memecahkan batas iSCSI 1 Gbit antara ESXi dan VNXe

15

Saya mengalami masalah besar dengan jaringan iSCSI saya dan sepertinya tidak bisa membuatnya bekerja secepat mungkin.

Jadi saya sudah mencoba hampir semuanya untuk mendapatkan kinerja penuh dari SAN saya, setelah melibatkan spesialis VMware dan EMC.

Deskripsi singkat perlengkapan saya: 3x HP DL360 G7 / vSphere 5.5 / 4 NIC onboard / 4 PCIe Intel NIC untuk iSCSI 2x HP 2510-24G 1x EMC VNXe 3100/2 prosesor penyimpanan, masing-masing dengan 2 iSCSI dedicated NICs / 24x 15k SAS RAID10 / 6x 7.2k SAS RAID6

Saya pergi praktik terbaik dan menempatkan kolam penyimpanan secara merata di kedua Server iSCSI. Saya membuat 2 server iSCSI, satu di setiap prosesor penyimpanan. Silakan lihat gambar untuk konfigurasi iSCSI saya.

konfigurasi iSCSI

Lalu lintas iSCSI dipisahkan melalui VLAN (dilarang untuk VLAN lainnya), saya bahkan mencobanya dengan saklar HP lain dari seri 29xx. Kontrol aliran diaktifkan (coba juga dinonaktifkan), Jumbo dinonaktifkan. Tidak ada routing yang terlibat.

Pada host ESX semua iSCSI NIC digunakan karena saya menggunakan pengaturan Round Robin untuk setiap datastore. Saya juga mencobanya dengan kebijakan perubahan jalur 1 IO karena banyak orang lain tampaknya telah mendapatkan kinerja seperti itu. Saya mencoba NIC internal juga (Broadcom), tetapi tidak ada perbedaan. Pada switch saya dapat melihat bahwa port sedang digunakan sangat merata, sisi ESX dan sisi VNXe. Saya memiliki penyeimbangan muatan yang sempurna, NAMUN: Saya tidak bisa melewati 1 Gbit secara total. Saya mengerti bahwa VNXe dioptimalkan untuk banyak koneksi dan Round Robin memang membutuhkannya juga, tetapi bahkan ketika saya melakukan penyimpanan vMotion antara 2 host dan 2 datastore (menggunakan server iSCSI yang berbeda), saya dapat melihat garis lurus sekitar 84 MBit / s via Unisphere webinterface. Saya bisa melihat garis itu begitu sering pada nilai yang persis sama sehingga saya tidak percaya disk saya tidak akan t memberikan lebih banyak atau tugas tidak cukup menuntut. Ini menjadi lebih baik: Dengan hanya satu kabel di setiap host dan setiap prosesor penyimpanan saya mencapai kinerja SAMA. Jadi saya mendapat banyak redundansi tetapi tidak ada kecepatan ekstra sama sekali.

Seperti yang saya lihat beberapa orang berbicara tentang kinerja iSCSI mereka, saya putus asa untuk mencari tahu apa yang salah dengan konfigurasi saya (yang telah diuji dan diverifikasi oleh orang-orang terlatih dari VMware dan EMC). Saya berterima kasih atas setiap pendapat!

EDIT:

Ya, saya telah mengonfigurasi vMotion untuk menggunakan beberapa NIC. Selain itu vMotion penyimpanan selalu melalui adaptor iSCSI, bukan adaptor vMotion. Saya telah memasang tangkapan layar konfigurasi saya.

Port iSCSI mengikat

Tujuan iSCSI

Jalur iSCSI

Saya tahu penyimpanan vMotion bukan tolok ukur, namun saya harus melakukan ini selama beberapa hari terakhir dan batas atas selalu sekitar 80 MB / s. Kumpulan disk SAS 6x15k 600 GB di RAID 10 seharusnya dapat dengan mudah membuat lebih banyak lagi, bukan begitu? Saya melakukan tes IO Meter untuk Anda - mencoba beberapa dari mereka, yang tercepat adalah 256 KiB 100% Baca. Saya mendapat 64,45 MB / s - Unisphere saya menunjukkan kecepatan yang sama juga. Itu dalam VM yang disimpan di kumpulan 6x 15k 300 GB disk SAS (RAID 10) yang hampir tidak ada aktivitas lain saat ini.

IO Meter

Tidak ada

EDIT2:

Maaf untuk nama pengguna duplikat, tapi saya menulis pertanyaan ini di tempat kerja dan tidak menggunakan nama pengguna saya, saya sudah punya di Stock Overflow. Namun di sini adalah tangkapan layar yang menunjukkan pengaturan Round Robin saya. Ini sama pada semua host dan semua toko.

Usul

Ryan Hardy
sumber
Saya tidak berpikir ada yang salah. Apa yang sebenarnya Anda harapkan? Sudahkah Anda mengonfigurasi multi-NIC vMotion?
ewwhite
3
Melakukan penyimpanan vmotion bukan tolok ukur untuk sistem penyimpanan, karena vmkernel dibatasi pada penggunaan I / O dan CPU. Sudahkah Anda mencoba melakukan benchmark menggunakan iometer dll? Jenis disk apa saja yang ada di VNXe, dan apa jenis penyatuan / penyimpanan kumpulan?
pauska
Juga, dapatkah Anda memposting tangkapan layar LUN "manage path" di dalam vSphere?
pauska
Anda masuk dengan pengguna yang berbeda dari yang biasa Anda ajukan pertanyaan, sehingga hasil edit Anda macet dalam antrian.
pauska
Terima kasih atas tangkapan layarnya, tapi ini bukan yang saya minta. Klik pada salah satu host esxi Anda, tab configure, datastores, pilih datastore yang ingin Anda atasi dan klik tautan "Properties" di kanan bawah. Kemudian klik "kelola jalur" dan kirim tangkapan layar jendela itu kepada kami.
pauska

Jawaban:

1

Ada kemungkinan bahwa Anda tidak menghasilkan cukup IOPS untuk ini benar-benar kick-in.
Lihat di sini tentang cara mengubah pengaturan dari default 1'000 IOPS ke nilai yang lebih kecil. (Ini adalah symmetrix khusus, tetapi Anda dapat melakukan hal yang sama untuk Penyedia Round Robin VMWare)

Namun saya belum yakin apakah ini benar-benar dapat memanfaatkan lebih dari satu tautan secara paralel dengan hanya satu datastore. Saya pikir Anda harus melakukan tes IOMeter pada lebih dari satu datastore secara paralel untuk melihat manfaatnya. (Tidak 100% yakin)

MichelZ
sumber
Seperti yang dinyatakan dalam pertanyaan saya, saya sudah menetapkan kebijakan perubahan jalur ke 1 alih-alih 1.000 - tidak terlalu banyak berubah.
Ryan Hardy
Aah, aku pasti mengabaikan bagian itu, maaf.
MichelZ
1

Buat aturan SATP untuk vendor penyimpanan bernama EMC, tetapkan kebijakan jalur sebagai Round Robine dan IOPS dari default 1000 menjadi 1. Ini akan menjadi persistensi di seluruh reboot dan kapan pun disajikan LUN EMC iSCSI baru, aturan ini akan diambil. Agar ini berlaku untuk EMUN iSCSI LUN yang ada, reboot host.

esxcli storage nmp satp rule add --satp="VMW_SATP_DEFAULT_AA" \
  --vendor="EMC" -P "VMW_PSP_RR" -O "iops=1"

Saya telah bermain-main dengan mengubah IOPS antara 1 - 3 dan menemukan performa terbaik pada satu VM. Yang mengatakan, jika Anda memiliki banyak VM dan banyak datastore, 1 mungkin tidak optimal ...

Pastikan Anda memiliki setiap antarmuka di VNXe yang diatur ke 9000 MTU. Juga, vSwitch dengan antarmuka iSCSI Anda harus diatur ke 9000 MTU bersama dengan masing-masing VMKernel. Di VNXe Anda, buat dua Server iSCSI - satu untuk SPA dan satu untuk SPB. Kaitkan satu IP untuk masing-masing awalnya. Kemudian lihat detail untuk setiap Server iSCSI dan tambahkan IP tambahan untuk setiap antarmuka aktif per SP. Ini akan memberi Anda kinerja round-robin yang Anda cari.

Kemudian buat minimal dua datastore. Kaitkan satu datastore dengan iSCSIServer-SPA dan satu dengan iSCSIServer-SPB. Ini akan memastikan salah satu SP Anda tidak duduk diam di sana.

Terakhir, semua antarmuka di sisi ESX yang sedang digunakan untuk iSCSI harus pergi ke vSwitch terpisah dengan semua antarmuka aktif. Namun, Anda menginginkan VMkernel untuk setiap antarmuka di sisi ESX dalam vSwitch yang ditunjuk. Anda harus mengganti urutan failover vSwitch untuk setiap VMKernel agar memiliki satu adaptor Aktif dan yang lainnya tidak digunakan. Ini adalah skrip penerapan yang saya gunakan untuk menyediakan host ESX. Setiap host memiliki total 8 antarmuka, 4 untuk LAN dan 4 untuk lalu lintas iSCSI / VMotion.

  1. Lakukan konfigurasi di bawah ini

Sebuah. # DNS jaringan esxcli ip dns pencarian tambahkan --domain = mydomain.net

jaringan esxcli ip dns server tambahkan --server = XXXX

jaringan esxcli ip dns server tambahkan --server = XXXX

b. # atur pembaruan nama host yang sesuai

set hostname sistem esxcli --host = server1 --domain = mydomain.net

c. # tambahkan uplinks ke vSwitch0 jaringan esxcli vswitch standar uplink add --uplink-name = vmnic1 --vswitch-name = vSwitch0

esxcli network vswitch standard uplink add --uplink-name = vmnic4 --vswitch-name = vSwitch0

esxcli jaringan vswitch standar uplink tambahkan --uplink-name = vmnic5 --vswitch-name = vSwitch0

d. # buat vSwitch1 untuk penyimpanan dan atur MTU ke 9000

jaringan esxcli vswitch standar tambahkan --vswitch-name = vSwitch1

jaringan esxcli vswitch standar yang ditetapkan --vswitch-name = vSwitch1 --mtu = 9000

e. # tambahkan uplinks ke vSwitch1

esxcli network vswitch standard uplink add --uplink-name = vmnic2 --vswitch-name = vSwitch1

esxcli jaringan vswitch standar uplink tambahkan --uplink-name = vmnic3 --vswitch-name = vSwitch1

esxcli jaringan vswitch standar uplink tambahkan --uplink-name = vmnic6 --vswitch-name = vSwitch1

esxcli jaringan vswitch standar uplink tambahkan --uplink-name = vmnic7 --vswitch-name = vSwitch1

f. # set NIC aktif untuk vSwitch0

esxcli jaringan vswitch standar set kebijakan failover --vswitch-name = vSwitch0 --active-uplinks = vmnic0, vmnic1, vmnic4, vmnic5

g. # set NIC aktif untuk vSwitch1

jaringan esxcli vswitch standar, set kegagalan kebijakan - vswitch-name = vSwitch1 --active-uplinks = vmnic2, vmnic3, vmnic6, vmnic7

h. # buat grup port untuk iSCSI dan vmkernels untuk ESX01 bukan ESX02

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk2

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk3

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk6

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk7

saya. # buat grup port untuk iSCSI dan vmkernels untuk ESX02 bukan ESX01

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk2

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk3

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk6

esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli network ip interface add --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli jaringan ip antarmuka set ipv4 --interface-name = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = static

vim-cmd hostsvc / vmotion / vnic_set vmk7

j. # atur NIC aktif untuk setiap vmkernel iSCSI

jaringan esxcli vswitch standar set kegagalan kebijakan portgroup --portgroup-name = iSCSI-vmnic2 --active-uplinks = vmnic2

jaringan esxcli vswitch standar kegagalan set portgroup kebijakan --portgroup-name = iSCSI-vmnic3 --active-uplinks = vmnic3

jaringan esxcli vswitch standar set kegagalan kebijakan portgroup --portgroup-name = iSCSI-vmnic6 --active-uplinks = vmnic6

jaringan esxcli vswitch standar set kegagalan kebijakan portgroup --portgroup-name = iSCSI-vmnic7 --active-uplinks = vmnic7

k. # buat grup port

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork1 --vswitch-name = vSwitch0

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork2 --vswitch-name = vSwitch0

esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork3 --vswitch-name = vSwitch0

l. # atur VLAN ke grup port VM

jaringan esxcli vswitch standar portgroup set -p VMNetwork1 --vlan-id ##

jaringan esxcli vswitch standar portgroup set -p VMNetwork2 --vlan-id ##

jaringan esxcli vswitch standar portgroup set -p VMNetwork3 --vlan-id ###

m. # hapus portgroup VM default

jaringan esxcli vswitch portgroup standar hapus --portgroup-name = "VM Network" -v = vSwitch0

n. # aktifkan Adaptor Perangkat Lunak iSCSI

set perangkat lunak esxcli iscsi --enabled = true

esxcli iscsi networkportal add -A vmhba33 -n vmk2

esxcli iscsi networkportal add -A vmhba33 -n vmk3

esxcli iscsi networkportal add -A vmhba33 -n vmk6

esxcli iscsi networkportal add -A vmhba33 -n vmk7

Hai. # ubah nama datastore lokal

hostname> $ var =

vim-cmd hostsvc / datastore / rename datastore1 local-$var

hal. #Tentukan Native Multi Path Storage Array Type Plugin untuk EMC VNXe 3300 dan sempurnakan round-robin IOPS dari 1000 hingga 1

aturan satmp nmp penyimpanan tambahan menambahkan --satp = "VMW_SATP_DEFAULT_AA" --vendor = "EMC" -P "VMW_PSP_RR" -O "iops = 1"

q. # menyegarkan jaringan

penyegaran firewall jaringan esxcli

vim-cmd hostsvc / net / refresh

  1. Konfigurasikan klien NTP menggunakan vSphere Client untuk setiap host

Sebuah. Konfigurasi -> Konfigurasi Waktu -> Properti -> Opsi -> Pengaturan NTP -> Tambah -> ntp.mydomain.net -> Centang "Restart layanan NTP untuk menerapkan perubahan" -> OK -> tunggu ... -> Pilih "Mulai dan berhenti dengan host" -> OK -> Periksa "NTP Client Diaktifkan -> OK

  1. Nyalakan Ulang Host

  2. Lanjutkan dengan Penyediaan Penyimpanan EMC VNXe, kembali ke panduan ini setelah selesai

  3. Masuk ke klien vSphere per host

  4. Tingkatkan setiap Datastore ke VMFS-5

Sebuah. Konfigurasi -> Penyimpanan -> Sorot Datastore -> Tingkatkan ke VMFS-5

Robert Margeson
sumber
0

Sayangnya, saya pikir tidak ada yang salah dengan pengaturan Anda. Anda tidak bisa menggunakan lebih dari 1 Gb / s untuk satu VM.

Intinya di sini adalah bahwa Anda tidak ingin hanya menggunakan dua (atau lebih) NIC, Anda ingin menggunakannya secara bersamaan , dalam konfigurasi seperti RAID-0.

802.3ad, standar tentang agregasi level-tautan dan yang saya pikir Anda konfigurasikan pada sakelar Anda, biasanya tidak dapat dikonfigurasikan untuk menghapus satu koneksi di NIC yang berbeda. Ini karena cara pemilihan antarmuka-alg bekerja: ini didasarkan pada src dan dst MACs dan / atau IP / port, dan satu koneksi akan selalu memiliki MACs / IPs / port yang sama .

Ini tidak berarti bahwa pengaturan Anda tidak dapat mendorong angka yang lebih tinggi (baik sebagai tput dan IOPS), tetapi ini memberikan batasan keras pada seberapa banyak kinerja yang dapat diekstrak oleh VM tunggal. Cobalah untuk memuat 2 atau 4 instance IOMeter pada 2/4 VM yang berbeda: Saya bertaruh bahwa agregat tput akan jauh lebih tinggi daripada patokan VM tunggal, tetapi tidak ada satu mesin pun yang akan melewati batas 1 Gb / s.

Linux bridging dan beberapa saklar kelas atas mendukung metode agregasi tautan yang berbeda dan memungkinkan antarmuka jaringan teragregasi penuh. Namun ini memiliki konsekuensi non sepele tentang bagaimana switch / sistem lain berinteraksi dengan metode agregasi "non-standar" ini.

Bagaimanapun, untuk jaringan penyimpanan, Anda harus benar-benar mengaktifkan frame jumbo, jika didukung.

shodanshok
sumber