Optimalizace výkonu elastické sítě SAN
Tento článek obsahuje některé obecné pokyny k zajištění optimálního výkonu v prostředí, které používá Azure Elastic SAN.
Optimalizace na straně klienta
Obecná doporučení (virtuální počítače s Windows a Linuxem)
Pokud chcete dosáhnout nejlepšího výkonu, nasaďte virtuální počítače a elastickou síť SAN ve stejné zóně a stejné oblasti.
Vstupně-výstupní operace úložiště virtuálních počítačů do svazků s elastickými sítěMI SAN využívají šířku pásma sítě virtuálních počítačů, takže se tradiční omezení propustnosti disku na virtuálním počítači nevztahují na svazky ELASTICKÉ SÍTĚ SAN. Vyberte virtuální počítač, který může poskytnout dostatečnou šířku pásma pro vstupně-výstupní operace virtuálního počítače a vstupně-výstupní operace iSCSI pro připojené svazky Elastic SAN. Obecně platí, že pro zajištění nejlepšího výkonu byste měli použít virtuální počítače řady Gen 5 (D/ E / M).
Během vytváření virtuálního počítače povolte akcelerované síťové služby. Pokud to chcete udělat přes Azure PowerShell nebo Azure CLI nebo povolit akcelerované síťové služby na existujících virtuálních počítačích, přečtěte si téma Použití Azure PowerShellu k vytvoření virtuálního počítače s akcelerovanými síťovými službami.
- Aby bylo možné dosáhnout maximálního počtu vstupně-výstupních operací za sekundu nebo propustnosti, musíte pro každý svazek použít 32 relací na cílový svazek. Ke správě těchto více relací na každém svazku pro vyrovnávání zatížení použijte funkci MPIO (Multipath I/O). Skripty jsou k dispozici pro Windows, Linux nebo na stránce Připojení pro svazky na webu Azure Portal, které ve výchozím nastavení používají 32 relací. Iniciátor softwaru iSCSI pro Windows má limit maximálně 256 relací. Pokud potřebujete připojit více než osm svazků k virtuálnímu počítači s Windows, snižte počet relací na každý svazek podle potřeby.
MPIO
Windows
K aktualizaci nastavení použijte následující příkazy:
# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI
# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2
# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30
Další informace o rutinách MPIO najdete v referenčních informacích k funkci MPIO.
Linux
Aktualizujte soubor /etc/multipath.conf následujícím kódem:
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 1 # To disable I/O queueing after retrying once when all paths are down
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
iSCSI
Windows
Aktualizujte následující nastavení registru pro iniciátor iSCSI ve Windows.
- Otevřete Editor registru:
- Vyberte Start, do vyhledávacího pole zadejte regedit a stiskněte enter.
- Přejděte do následujícího umístění: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Iniciátor iSCSI)\Parameters]
- Aktualizujte následující nastavení. Klikněte pravým tlačítkem na každé nastavení a vyberte Změnit. Změňte hodnotu Base na Decimal, aktualizujte hodnotu a vyberte OK.
Popis | Parametr a hodnota |
---|---|
Nastaví maximální počet dat, která iniciátor odesílá do cíle do 256 kB. | MaxTransferLength=262144 |
Nastaví maximální datovou část SCSI, kterou iniciátor vyjedná s cílem na 256 kB. | MaxBurstLength=262144 |
Nastaví maximální nevyžádaná data, která iniciátor může odeslat v pdU iSCSI do cíle na 256 kB. | FirstBurstLength=262144 |
Nastaví maximální počet dat, která iniciátor může přijímat v primárním procesoru iSCSI z cíle na 256 kB. | MaxRecvDataSegmentLength=262144 |
Zakáže řízení toku R2T. | InitialR2T=0 |
Umožňuje okamžitá data. | ImmediateData=1 |
Nastaví hodnotu časového limitu pro požadavky WMI na 30 sekund. | WMIRequestTimeout = 30 sekund |
Nastaví hodnotu časového limitu pro dobu výpadku propojení na 30 sekund. | LinkDownTime = 30 sekund |
V konfiguracích clusteru se ujistěte, že jsou názvy iniciátorů iSCSI jedinečné napříč všemi uzly, které sdílejí svazky. Ve Windows je můžete aktualizovat prostřednictvím aplikace iniciátoru iSCSI.
Vyberte Start, vyhledejte iniciátor iSCSI ve vyhledávacím poli. Tím se otevře iniciátor iSCSI.
Výběrem možnosti Konfigurace zobrazíte aktuální název iniciátoru.
Pokud ho chcete upravit, vyberte Změnit, zadejte nový název iniciátoru a vyberte OK.
Linux
Před připojením všech svazků k němu aktualizujte následující nastavení s doporučenými hodnotami v globálním konfiguračním souboru iSCSI (iscsid.conf, obecně v adresáři /etc/iscsi). Když je svazek připojený, vytvoří se uzel spolu s konfiguračním souborem specifickým pro tento uzel (například v Ubuntu, najdete ho v adresáři /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port adresáři), který dědí nastavení z globálního konfiguračního souboru. Pokud jste již před aktualizací globálního konfiguračního souboru připojili jeden nebo více svazků k klientovi, aktualizujte konkrétní konfigurační soubor uzlu pro každý svazek přímo nebo pomocí následujícího příkazu:
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n $iscsi_setting_name -v $setting_value
Kde
- $volume_iqn: Elastický svazek SAN IQN
- $portal_hostname: Název hostitele portálu elastického svazku SAN
- $port: 3260
- $iscsi_setting_name: parametr pro každé níže uvedené nastavení
- $setting_value: hodnota doporučená pro každé níže uvedené nastavení
Popis | Parametr a hodnota |
---|---|
# Nastavte maximální data, která iniciátor odesílá do cíle do 256 kB. | node.conn[0].iscsi. MaxXmitDataSegmentLength = 262144 |
# Nastavte maximální datovou část SCSI, kterou iniciátor vyjedná s cílem na 256 kB. | node.session.iscsi.MaxBurstLength = 262144 |
# Nastavte maximální nevyžádaná data, která iniciátor může odeslat do cíle do 256 kB. | node.session.iscsi.FirstBurstLength = 262144 |
# Nastavte maximální počet dat, která iniciátor může přijímat v pdU iSCSI z cíle na 256 kB. | node.conn[0].iscsi. MaxRecvDataSegmentLength = 262144 |
# Zákaz řízení toku R2T | node.session.iscsi.InitialR2T = Ne |
# Povolit okamžitá data | node.session.iscsi.ImmediateData = Ano |
# Nastavit hodnotu časového limitu pro požadavky WMI | node.conn[0].timeo.login_timeout = 30 node.conn[0].timeo.logout_timeout = 15 |
# Povolení kontroly hodnoty hash CRC pro hlavičku a data | node.conn[0].iscsi. HeaderDigest = CRC32C node.conn[0].iscsi. DataDigest = CRC32C |
V konfiguracích clusteru se ujistěte, že názvy iniciátorů iSCSI jsou jedinečné napříč všemi uzly, které sdílejí svazky. V Linuxu můžete upravit /etc/iscsi/initiatorname.iscsi a aktualizovat název iniciátoru.
Optimalizace elastické sítě SAN
Před nasazením elastické sítě SAN je potřeba určit optimální velikost elastické sítě SAN, kterou nasadíte, abyste dosáhli správné rovnováhy výkonu pro vaše úlohy a náklady. Pomocí následujících kroků určete nejvhodnější velikost pro vás:
U stávajícího řešení úložiště vyberte časový interval (den/týden/čtvrtletí) a sledujte výkon. Nejlepším časovým intervalem je ten, který je dobrým snímkem vašich aplikací a úloh. V daném časovém období zaznamenejte kombinované maximální IOPS a propustnost pro všechny úlohy. Pokud používáte interval vyšší než minutu nebo pokud některé z vašich úloh mají kritické body s vaší aktuální konfigurací, zvažte přidání další základní kapacity do nasazení elastické sítě SAN. Při určování základní kapacity byste měli nechat určitou místnost, aby se zohlednil růst. Zbytek úložiště elastické sítě SAN by měl využívat dodatečnou kapacitu, aby se ušetřily náklady.
Další informace o výkonu najdete v tématu Výkon elastické sítě SAN a virtuálního počítače.