FAST VP sa Unity storage: kung paano ito gumagana

Ngayon ay pag-uusapan natin ang tungkol sa isang kawili-wiling teknolohiya na ipinatupad sa Unity/Unity XT storage system - FAST VP. Kung ito ang iyong unang pagkakataon na marinig ang tungkol sa Unity, maaari mong tingnan ang mga katangian ng system gamit ang link sa dulo ng artikulo. Nagtrabaho ako sa FAST VP sa Dell EMC project team nang mahigit isang taon. Ngayon gusto kong pag-usapan ang teknolohiyang ito nang mas detalyado at ipakita ang ilang mga detalye ng pagpapatupad nito. Syempre, yung mga pinahihintulutang ibunyag lang. Kung interesado ka sa mga isyu ng mahusay na pag-iimbak ng data o hindi mo pa lubos na nauunawaan ang dokumentasyon, tiyak na magiging kapaki-pakinabang at kawili-wili ang artikulong ito.

FAST VP sa Unity storage: kung paano ito gumagana

Sasabihin ko kaagad sa iyo kung ano ang wala sa materyal. Hindi magkakaroon ng paghahanap para sa mga kakumpitensya at paghahambing sa kanila. Hindi ko rin planong magsalita tungkol sa mga katulad na teknolohiya mula sa open source, dahil alam na ng mausisa na mambabasa ang tungkol sa kanila. At, siyempre, hindi ako mag-a-advertise ng kahit ano.

Tiering ng Imbakan. Mga layunin at layunin ng FAST VP

Ang FAST VP ay kumakatawan sa Fully Automated Storage Tiering para sa Virtual Pool. Medyo mahirap? Walang problema, aalamin natin ito ngayon. Ang tiering ay isang paraan ng pag-aayos ng imbakan ng data kung saan mayroong ilang mga antas (tier) kung saan iniimbak ang data na ito. Ang bawat isa ay may sariling katangian. Ang pinakamahalaga: pagganap, dami at presyo ng pag-iimbak ng isang yunit ng impormasyon. Siyempre, may relasyon sa pagitan nila.

Ang isang mahalagang tampok ng tiering ay ang pag-access sa data ay ibinibigay nang pantay-pantay anuman ang antas ng imbakan kung saan ito kasalukuyang matatagpuan, at ang laki ng pool ay katumbas ng kabuuan ng mga sukat ng mga mapagkukunang kasama dito. Dito nakasalalay ang mga pagkakaiba mula sa cache: ang laki ng cache ay hindi idinagdag sa kabuuang dami ng mapagkukunan (pool sa kasong ito), at ang data ng cache ay nadoble ang ilang fragment ng pangunahing data ng media (o madodoble kung ang ang data mula sa cache ay hindi pa naisulat). Gayundin, ang pamamahagi ng data ayon sa mga antas ay nakatago mula sa user. Ibig sabihin, hindi niya eksaktong nakikita kung anong data ang matatagpuan sa bawat antas, bagama't maimpluwensyahan niya ito nang hindi direkta sa pamamagitan ng pagtatakda ng mga patakaran (higit pa sa mga ito sa ibang pagkakataon).

Ngayon tingnan natin ang mga feature ng pagpapatupad ng storage tiering sa Unity. Ang pagkakaisa ay may 3 antas, o tier:

  • Extreme performance (SSDs)
  • Pagganap (SAS HDD 10k/15k RPM)
  • Kapasidad (NL-SAS HDD 7200 RPM)

Ang mga ito ay ipinakita sa pababang pagkakasunud-sunod ng pagganap at presyo. Kasama lang sa matinding performance ang mga solid state drive (SSD). Kasama sa iba pang dalawang tier ang mga magnetic disk drive, na naiiba sa bilis ng pag-ikot at, nang naaayon, sa pagganap.

Ang storage media mula sa parehong antas at parehong laki ay pinagsama sa isang RAID array, na bumubuo ng isang RAID group (RAID group, dinaglat bilang RG); Maaari mong basahin ang tungkol sa magagamit at inirerekomendang mga antas ng RAID sa opisyal na dokumentasyon. Ang mga storage pool ay nabuo mula sa mga pangkat ng RAID mula sa isa o higit pang mga antas, kung saan ibinabahagi ang libreng espasyo. At mula sa pool space ay inilalaan para sa mga file system at LUN.

FAST VP sa Unity storage: kung paano ito gumagana

Bakit kailangan ko ng Tiering?

Sa maikli at abstract: upang makamit ang mas malaking resulta gamit ang pinakamababang mapagkukunan. Higit na partikular, ang resulta ay karaniwang nauunawaan bilang isang hanay ng mga katangian ng sistema ng imbakan - bilis at oras ng pag-access, gastos sa imbakan, at iba pa. Ang pinakamababang mapagkukunan ay nangangahulugan ng pinakamaliit na paggasta: pera, enerhiya, at iba pa. Ang FAST VP ay nagpapatupad ng mga mekanismo para sa muling pamamahagi ng data sa iba't ibang antas sa Unity/Unity XT storage system. Kung naniniwala ka sa akin, maaari mong laktawan ang susunod na talata. Para sa natitira, sasabihin ko sa iyo ng kaunti pa.

Ang wastong pamamahagi ng data sa mga tier ng storage ay nagbibigay-daan sa iyong makatipid sa kabuuang halaga ng storage sa pamamagitan ng pagsasakripisyo ng bilis ng pag-access sa ilang bihirang ginagamit na impormasyon, at pagbutihin ang pagganap sa pamamagitan ng paglipat ng madalas na ginagamit na data sa mas mabilis na media. Dito maaaring may magtaltalan na kahit walang tiering, alam ng isang normal na admin kung saan ilalagay kung anong data, ano ang mga kanais-nais na katangian ng isang storage system para sa kanyang gawain, atbp. Ito ay walang alinlangan na totoo, ngunit ang manu-manong pamamahagi ng data ay may mga kakulangan nito:

  • nangangailangan ng oras at atensyon ng tagapangasiwa;
  • Hindi laging posible na "i-redraw" ang mga mapagkukunan ng imbakan upang umangkop sa pagbabago ng mga kondisyon;
  • nawawala ang isang mahalagang kalamangan: pinag-isang pag-access sa mga mapagkukunan na matatagpuan sa iba't ibang antas ng imbakan.

Upang mabawasan ang pag-aalala ng mga administrator ng storage tungkol sa seguridad sa trabaho, idaragdag ko na kailangan din dito ang karampatang pagpaplano ng mapagkukunan. Ngayon na ang mga gawain ng tiering ay maikling nakabalangkas, tingnan natin kung ano ang maaari mong asahan mula sa FAST VP. Ngayon na ang oras upang bumalik sa kahulugan. Ang unang dalawang salita - Ganap na Automated - ay literal na isinalin bilang "ganap na awtomatiko" at nangangahulugang awtomatikong nangyayari ang pamamahagi sa pagitan ng mga antas. Well, ang Virtual Pool ay isang data pool na kinabibilangan ng mga mapagkukunan mula sa iba't ibang antas ng storage. Ito ang hitsura nito:

FAST VP sa Unity storage: kung paano ito gumagana

Sa hinaharap, sasabihin ko na ang FAST VP ay naglilipat ng data sa loob lamang ng isang pool, at hindi sa pagitan ng ilang pool.

Ang mga problema ay nalutas ng FAST VP

Mag-usap muna tayo ng abstract. Mayroon kaming pool at ilang mekanismo na maaaring muling ipamahagi ang data sa loob ng pool na ito. Sa pag-alala na ang ating layunin ay makamit ang pinakamataas na produktibidad, tanungin natin ang ating sarili: anong mga paraan natin ito makakamit? Maaaring may ilan sa kanila, at narito ang FAST VP ay may maiaalok sa user, dahil ang teknolohiya ay higit pa sa storage tiering. Narito ang ilang paraan upang mapataas ng FAST VP ang performance ng pool:

  • Pamamahagi ng data sa iba't ibang uri ng mga disk, antas
  • Pamamahagi ng data sa mga disk ng parehong uri
  • Pamamahagi ng data kapag pinapalawak ang pool

Bago natin tingnan kung paano nalulutas ang mga gawaing ito, kailangan nating malaman ang ilang kinakailangang katotohanan tungkol sa kung paano gumagana ang FAST VP. Gumagana ang FAST VP sa mga bloke ng isang tiyak na laki - 256 megabytes. Ito ang pinakamaliit na magkadikit na "tipak" ng data na maaaring ilipat. Sa dokumentasyon ito ang tawag nila dito: slice. Mula sa pananaw ng FAST VP, ang lahat ng grupo ng RAID ay binubuo ng isang set ng naturang "mga piraso". Alinsunod dito, ang lahat ng istatistika ng I/O ay naipon para sa naturang mga bloke ng data. Bakit pinili ang laki ng bloke na ito at mababawasan ba ito? Ang block ay medyo malaki, ngunit ito ay isang kompromiso sa pagitan ng granularity ng data (ang mas maliit na laki ng block ay nangangahulugan ng mas tumpak na pamamahagi) at mga magagamit na mapagkukunan ng computing: dahil sa umiiral na mahigpit na mga limitasyon sa RAM at isang malaking bilang ng mga bloke, ang data ng istatistika ay maaaring tumagal ng hanggang masyadong marami, at ang bilang ng mga kalkulasyon ay tataas nang proporsyonal.

Paano naglalaan ng data ang FAST VP sa pool. Mga politiko

Upang kontrolin ang paglalagay ng data sa isang pool na naka-enable ang FAST VP, umiiral ang mga sumusunod na patakaran:

  • Pinakamataas na Magagamit na Tier
  • Auto-Tier
  • Magsimula sa Mataas pagkatapos ay Auto-Tier (default)
  • Pinakamababang Magagamit na Tier

Naaapektuhan ng mga ito ang paunang paglalaan ng bloke (naunang isinulat ang data) at ang kasunod na muling paglalaan. Kapag ang data ay matatagpuan na sa mga disk, ang muling pamamahagi ay sisimulan ayon sa isang iskedyul o manu-mano.

Ang Pinakamataas na Magagamit na Tier ay sumusubok na maglagay ng bagong bloke sa pinakamataas na antas ng pagganap. Kung walang sapat na espasyo dito, inilalagay ito sa susunod na pinaka-produktibong antas, ngunit pagkatapos ay ang data ay maaaring ilipat sa isang mas produktibong antas (kung may espasyo o sa pamamagitan ng pag-alis ng iba pang data). Ang Auto-Tier ay naglalagay ng bagong data sa iba't ibang antas depende sa dami ng magagamit na espasyo, at ito ay muling ipinamamahagi depende sa pangangailangan at libreng espasyo. Start High at Auto-Tier ang default na patakaran at inirerekomenda rin. Kapag unang inilagay, ito ay gumagana bilang ang Pinakamataas na Magagamit na Tier, at pagkatapos ay inilipat ang data depende sa mga istatistika ng paggamit nito. Ang Patakaran sa Pinakamababang Magagamit na Tier ay naglalayong ilagay ang data sa pinakamababang antas ng produktibo.

Ang paglilipat ng data ay nangyayari nang may mababang priyoridad upang hindi makagambala sa kapaki-pakinabang na pagpapatakbo ng sistema ng imbakan, gayunpaman, mayroong setting na "Data relocation rate" na nagbabago sa priyoridad. Mayroong isang kakaiba dito: hindi lahat ng mga bloke ng data ay may parehong pagkakasunud-sunod ng muling pamamahagi. Halimbawa, ang mga bloke na minarkahan bilang metadata ay ililipat muna sa mas mabilis na antas. Ang metadata ay, wika nga, "data tungkol sa data", ilang karagdagang impormasyon na hindi data ng user, ngunit iniimbak ang paglalarawan nito. Halimbawa, ang impormasyon sa file system tungkol sa kung saan naka-block ang isang partikular na file. Nangangahulugan ito na ang bilis ng pag-access sa data ay nakasalalay sa bilis ng pag-access sa metadata. Dahil ang metadata ay karaniwang mas maliit sa laki, ang mga benepisyo ng paglipat nito sa mas mataas na pagganap ng mga disk ay inaasahang mas malaki.

Pamantayan na ginagamit ng Fast VP sa trabaho nito

Ang pangunahing pamantayan para sa bawat bloke, halos halos, ay ang katangian ng "demand" ng data, na nakasalalay sa bilang ng mga operasyon sa pagbasa at pagsulat ng isang fragment ng data. Tinatawag namin ang katangiang ito na "Temperatura". Mayroong hinihinging (mainit) na data na "mas mainit" kaysa sa hindi na-claim na data. Ito ay kinakalkula sa pana-panahon, bilang default sa pagitan ng isang oras.

Ang function ng pagkalkula ng temperatura ay may mga sumusunod na katangian:

  • Sa kawalan ng I/O, "lalamig" ang data sa paglipas ng panahon.
  • Sa ilalim ng mas marami o mas kaunting pantay na pagkarga sa paglipas ng panahon, ang temperatura ay unang tumataas at pagkatapos ay nagpapatatag sa isang tiyak na hanay.

Susunod, ang mga patakarang inilarawan sa itaas at ang libreng espasyo sa bawat baitang ay isinasaalang-alang. Para sa kalinawan, magbibigay ako ng larawan mula sa dokumentasyon. Narito ang pula, dilaw at asul na mga kulay ay nagpapahiwatig ng mga bloke na may mataas, katamtaman at mababang temperatura, ayon sa pagkakabanggit.

FAST VP sa Unity storage: kung paano ito gumagana

Ngunit bumalik tayo sa mga gawain. Kaya, maaari nating simulan ang pagsusuri kung ano ang ginagawa upang malutas ang mga problema sa FAST VP.

A. Pamamahagi ng data sa iba't ibang uri ng mga disk, antas

Actually, ito ang pangunahing gawain ng FAST VP. Ang natitira, sa isang kahulugan, ay mga derivatives nito. Depende sa napiling patakaran, ibabahagi ang data sa iba't ibang antas ng storage. Una sa lahat, isinasaalang-alang ang patakaran sa paglalagay, pagkatapos ay ang temperatura ng bloke at ang laki/bilis ng mga pangkat ng RAID.

Para sa mga patakaran sa Pinakamataas/Mababang Magagamit na Tier, ang lahat ay medyo simple. Para sa iba pang dalawa ito ang kaso. Ang data ay ipinamamahagi sa iba't ibang antas na isinasaalang-alang ang laki at pagganap ng mga pangkat ng RAID: upang ang ratio ng kabuuang "temperatura" ng mga bloke sa "kondisyong maximum na pagganap" ng bawat pangkat ng RAID ay humigit-kumulang pareho. Kaya, ang pagkarga ay ipinamamahagi nang higit pa o hindi gaanong pantay. Mas maraming in-demand na data ang inililipat sa mabilis na media, at ang bihirang ginagamit na data ay inililipat sa mas mabagal na media. Sa isip, ang pamamahagi ay dapat magmukhang ganito:

FAST VP sa Unity storage: kung paano ito gumagana

B. Pamamahagi ng data sa mga disk ng parehong uri

Tandaan, sa simula ay isinulat ko ang storage media na iyon mula sa isa o higit pa ang mga antas ay pinagsama sa isang pool? Sa kaso ng isang antas, ang FAST VP ay mayroon ding kailangang gawin. Upang makamit ang pinakamataas na pagganap sa anumang antas, ipinapayong ipamahagi ang data nang pantay-pantay sa pagitan ng mga disk. Ito ay (sa teorya) ay magbibigay-daan sa iyo upang makuha ang maximum na halaga ng IOPS. Ang data sa loob ng isang pangkat ng RAID ay maaaring ituring na ibinahagi nang pantay-pantay sa mga disk, ngunit hindi ito palaging nangyayari sa pagitan ng mga pangkat ng RAID. Kung sakaling magkaroon ng imbalance, ang FAST VP ay maglilipat ng data sa pagitan ng mga pangkat ng RAID na naaayon sa kanilang dami at "kondisyon na pagganap" (sa mga terminong numero). Para sa kalinawan, magpapakita ako ng rebalancing scheme sa tatlong pangkat ng RAID:

FAST VP sa Unity storage: kung paano ito gumagana

B. Pamamahagi ng data kapag pinalawak ang pool

Ang gawaing ito ay isang espesyal na kaso ng nauna at ginagawa kapag may idinagdag na RAID group sa pool. Upang matiyak na ang bagong idinagdag na pangkat ng RAID ay hindi mananatiling idle, ang ilan sa mga data ay ililipat dito, na nangangahulugang ang pag-load ay muling ipapamahagi sa lahat ng mga pangkat ng RAID.

SSD Wear Leveling

Sa pamamagitan ng paggamit ng wear leveling, maaaring pahabain ng FAST VP ang buhay ng isang SSD, bagama't ang feature na ito ay hindi direktang nauugnay sa Storage Tiering. Dahil ang data ng temperatura ay magagamit na, ang bilang ng mga operasyon sa pagsulat ay isinasaalang-alang din, at alam namin kung paano ilipat ang mga bloke ng data, magiging lohikal para sa FAST VP na lutasin ang problemang ito.

Kung ang bilang ng mga entry sa isang RAID group ay makabuluhang lumampas sa bilang ng mga entry sa isa pa, ang FAST VP ay muling ibabahagi ang data alinsunod sa bilang ng mga write operations. Sa isang banda, pinapaginhawa nito ang pag-load at nai-save ang mapagkukunan ng ilang mga disk, sa kabilang banda, nagdaragdag ito ng "trabaho" para sa mga hindi gaanong na-load, pinatataas ang pangkalahatang pagganap.

Sa ganitong paraan, tinatanggap ng FAST VP ang mga tradisyunal na hamon ng Storage Tiering at higit pa ang ginagawa nito. Ang lahat ng ito ay nagbibigay-daan sa iyo na mag-imbak ng data nang mahusay sa sistema ng imbakan ng Unity.

Ang ilang mga tip

  1. Huwag pabayaan ang pagbabasa ng dokumentasyon. May mga pinakamahusay na kasanayan, at gumagana ang mga ito nang maayos. Kung susundin mo ang mga ito, kung gayon, bilang isang patakaran, walang malubhang problema ang lumitaw. Ang natitirang payo ay karaniwang inuulit o pinupunan ang mga ito.
  2. Kung na-configure at pinagana mo ang FAST VP, mas mabuting iwanan itong naka-enable. Hayaang ipamahagi nito ang data sa inilaang oras nito at unti-unti sa isang beses sa isang taon at magkaroon ng malubhang epekto sa pagganap ng iba pang mga gawain. Sa ganitong mga kaso, maaaring tumagal ng mahabang panahon ang muling pamamahagi ng data.
  3. Mag-ingat sa pagpili ng relocation window. Bagama't halata ito, subukang pumili ng oras na may pinakamababang load sa Unity at maglaan ng sapat na panahon.
  4. Magplanong palawakin ang iyong storage system, gawin ito sa oras. Isa itong pangkalahatang rekomendasyon na mahalaga din para sa FAST VP. Kung ang dami ng libreng espasyo ay napakaliit, ang paggalaw ng data ay bumagal o magiging imposible. Lalo na kung napabayaan mo ang point 2.
  5. Kapag nagpapalawak ng pool na naka-enable ang FAST VP, hindi ka dapat magsimula sa pinakamabagal na disk. Iyon ay, maaari naming idagdag ang lahat ng nakaplanong grupo ng RAID nang sabay-sabay, o idagdag muna ang pinakamabilis na mga disk. Sa kasong ito, ang muling pamamahagi ng data sa mga bagong "mabilis" na disk ay magpapataas sa kabuuang bilis ng pool. Kung hindi man, simula sa "mabagal" na mga disk ay maaaring humantong sa isang hindi kasiya-siyang sitwasyon. Una, ang data ay ililipat sa bago, medyo mabagal na mga disk, at pagkatapos, kapag ang mga mas mabilis ay idinagdag, sa kabaligtaran na direksyon. Mayroong mga nuances dito na nauugnay sa iba't ibang mga patakaran ng FAST VP, ngunit sa pangkalahatan, posible ang isang katulad na sitwasyon.

Kung tinitingnan mo ang produktong ito, maaari mong subukan ang Unity nang libre sa pamamagitan ng pag-download ng Unity VSA virtual appliance.

FAST VP sa Unity storage: kung paano ito gumagana

Sa dulo ng materyal, nagbabahagi ako ng ilang mga kapaki-pakinabang na link:

Konklusyon

Marami akong gustong isulat, ngunit naiintindihan ko na hindi lahat ng detalye ay magiging interesante sa mambabasa. Halimbawa, maaari kang makipag-usap nang mas detalyado tungkol sa mga pamantayan kung saan ang FAST VP ay gumagawa ng mga desisyon tungkol sa paglilipat ng data, tungkol sa mga proseso ng pagsusuri ng mga istatistika ng I/O. Gayundin, ang paksa ng pakikipag-ugnayan sa Mga Dynamic na Pool, at ito ay nararapat sa isang hiwalay na artikulo. Maaari ka ring magpantasya tungkol sa pag-unlad ng teknolohiyang ito. Sana hindi boring at hindi kita nainis. Sa muling pagkikita!

Pinagmulan: www.habr.com

Magdagdag ng komento