第äºéš
ãããã£ãŠããHP / EMC / IBMã«äœãããïŒãŸãã¯ã¡ã¬ãïŒæãããã¹ãã¬ãŒãžãæªåãããªãæ¹æ³ããšãããããã¯ã«é¢ãã çãã èšäºãç¶ããŸãã ç§ã¯æåŸã®ãµã€ã¯ã«ãåå©ã«çµããããªãã£ãããããã§ãç§ã®èãã®90ïŒ ãããã¹ãã«èšå ¥ããã
ç§ãã¡ã®ä»æ¥ã®ç®æšã¯ãvSphereã¯ã©ã¹ã¿ãŒã®ããŒãºã«å¯Ÿå¿ãããã©ãŒã«ããã¬ã©ã³ããªãªãŒã«ãã©ãã·ã¥ïŒã€ãŸããSSDããã®ã¿ã§ãããã¯éèŠã§ã¯ãããŸãããïŒã§ããããã©ã³ãã®åçåãããæ°åå®ããéåžžã«åªããããã©ãŒãã³ã¹ãçºæ®ããŸãã Fibre Channelãä»ããŠæ¥ç¶ããŸãããiSCSIãFCoEãããã«ã¯ãã©ãŒãInfinibandãå®è¡ããå¿ èŠã¯ãããŸããã
ã·ã³ã¯ã
ååã瀺ãããã«ããã®å®¶å šäœã®åºç€ã¯ã LSI ïŒçŸåšã®AvagoïŒã®Syncro CSãšåŒã°ããããªããŠããŒã¯ãªè£œåã§ãã
ããã¯äœã§ãããäœã泚ç®ã«å€ããŸããïŒ
å®éãããã¯2ã€ã®åŸæ¥ã®LSI 9286-8eã³ã³ãããŒã©ãŒïŒãŸãã¯å éšããŒããå¿ èŠãªå Žåã¯9271-8iïŒãšãåé»æã«ã³ã³ãããŒã©ãŒã®ãã©ãã·ã¥ãã©ã€ãã«ãã£ãã·ã¥ã¡ã¢ãªãä¿åããããã®2ã€ã®ã¹ãŒããŒãã£ãã·ã¿ã®ã»ããã§ãã ãããã®ã³ã¹ãã¯ãHAæ©èœã®ãªãåæ§ã®ãããã®äŸ¡æ Œãããæ°åé«ããªã£ãŠããŸãã ãã ããDRBDããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒãããšããã®éãã¯ããã¥ã¢ã«ãã©ã€ãã»ãããçšæããå¿ èŠããªãããšã§çžæ®ºãããŸãã
ããããæãèå³æ·±ãã®ã¯ãã¡ãŒã ãŠã§ã¢ã«ãããŸãã ãã®ãããã§ããããã®ã³ã³ãããŒã©ãŒã¯åãSASãããã¯ãŒã¯ïŒãšãã¹ãã³ããŒä»ãã®ãã£ã¹ã¯ãã¹ã±ãããªã©ïŒã«æ¥ç¶ãããçžäºã«éä¿¡ã確ç«ãããã§ãŒã«ãªãŒããŒã¯ã©ã¹ã¿ãŒã¢ãŒãã§åäœããŸãã
ç§ãã¡ã«ãšã£ãŠãããã¯ããã§èå³æ·±ãã§ãïŒ
- 2å°ã®ãµãŒããŒã§åæã«å©çšå¯èœãªRAIDã¢ã¬ã€ãäœæããæ©èœ
- ã³ã³ãããŒã©ãŒã¬ãã«ã§ã®ãã©ãŒã«ããã¬ã©ã³ã¹ïŒãã®ãã¡ã®1ã€ïŒãŸãã¯ãµãŒããŒå šäœïŒãæ»äº¡ããå Žåã2ã€ç®ã¯åŒãç¶ãåäœããI / Oãç¶æããŸãã
SASãããã¯ãŒã¯ãä»ããŠããããã®ã³ã³ãããŒã©ãŒã¯æžã蟌ã¿ãã£ãã·ã¥ïŒãããããã£ãã·ã¥ã³ããŒã¬ã³ã·ãŒïŒãåæããããŒãããŒãã亀æããäºãã«æ£åžžã§ãããšäŒããŸãã
ãããã«ã¯ãçµéš
- ãœãªã¥ãŒã·ã§ã³ã®èé害æ§ã«ãããLSI Syncroã¯ãã¥ã¢ã«ããŒãSASãã©ã€ãã®ã¿ããµããŒãããŸã ã æ®å¿µãªãããSATA SSDã¯ãããŸãããããã¯ãã¹ãã¬ãŒãžã®ã³ã¹ãã倧å¹
ã«å¢å ãããŸãã
- ç§ãç解ããŠããããã«ãã³ã³ãããŒã©ãŒã¯96åãŸã§ã®SASãã©ã€ãããµããŒãããŸãã ãã®ããã¥ã¡ã³ãã«ã¯ãHAã¹ãã¬ãŒãžãã¡ã€ã³å
ã®æ倧120ã®ãã¥ã¢ã«ããŒãSASããã€ã¹ãšãããã¬ãŒãºãå«ãŸããŠããŸãã ãããã¯åãå Žæã§æ倧96åã®6G SASããã³/ãŸãã¯NearLine-SASãã¥ã¢ã«ããŒãHDDããã³SSDãš 2è¡äžã«ççŸããŠããŸãã ãã®ãããæå°éã«ããŸãã
- ã³ã³ãããŒã©ãŒã®1ã€ã«ã¢ã¬ã€ãäœæãããšããã®ã³ã³ãããŒã©ãŒã¯ãããšãã°ãã€ã³ã¹ããŒã«ãããŠãããµãŒããŒãåèµ·åããããŸã§ãã®ãã¹ã¿ãŒã«ãªããŸãã ãã®åŸãææè
ã®åœ¹å²ã¯2çªç®ã®ã³ã³ãããŒã©ãŒã«æž¡ãããŸãã
- æåã®ã³ã³ãããŒã©ãŒããµãŒãã¹ã«æ»ã£ãåŸãã¢ã¬ã€ã®ææè
ã®åœ¹å²ã¯åœŒã«æ»ããŸãããã2çªç®ã®ã³ã³ãããŒã©ãŒã«æ®ããŸãã
- ã³ã³ãããŒã©ãŒã¯I / Oã·ããã³ã°ã¡ã«ããºã ã䜿çšããŸããI/ OèŠæ±ãçŸåšã¢ã¬ã€ã®ãã¹ã¿ãŒã§ã¯ãªãã³ã³ãããŒã©ãŒã«å°çãããšãSASãã¹ãä»ããŠãã¹ãã³ã³ãããŒã©ãŒã«ãã®èŠæ±ã転éããå®è¡ããŠéä¿¡ããŸãã
- äžèšã®çµæãã¢ã¬ã€ãåããã¹ã¬ãŒãã³ã³ãããŒã©ãŒã®é床ã¯ããã¹ãã³ã³ãããŒã©ãŒã®é床ãããæ°åäœããªããŸãïŒç·åœ¢é床-2åãIOPS-7ïŒïŒïŒæéïŒã
- çŸæç¹ã§ã¯ããã¹ãã³ã³ãããŒã©ãŒã«åŒ·å¶çã«ã¢ã¬ã€ã®æææš©ã2çªç®ã®ã³ã³ãããŒã©ãŒã«åŒ·å¶çã«ç§»è¡ãããæ¹æ³ã¯ãããŸãããããã¯éåžžã«å¥åŠã§ãã ç¹ã«ãã¡ã€ã³ã³ã³ãããŒã©ãŒã®ãœãããªã»ããïŒå¶åŸ¡ããããã§ãŒã«ãªãŒããŒïŒäžã«ã2çªç®ã®ã³ã³ãããŒã©ãŒã®ãã°ã«ããã¡ãã»ãŒãžã¯ãã¡ã€ã³ã³ã³ãããŒã©ãŒãåèµ·åã«ã€ããŠèŠåããã¢ã¬ã€ãããã¯ã¢ããããããã«èŠæ±ããããšã瀺ããŸãã LSIã¯ãŠãŒãã£ãªãã£ã«äœããè¿œå ããããšãçŽæããŸããããä»ã®ãšããã¯...ãªããŒãã®ã¿ã§ãããŒãã³ã¢ã®ã¿ã§ãã
- ã¹ã¬ãŒãïŒç¹å®ã®ç¬éïŒã³ã³ãããŒã©ãŒãæ¿å ¥ãããŠãããµãŒããŒOSã¯ãã¹ãã³ã³ãããŒã©ãŒã¢ã¬ã€ãèªèããŸãããã¢ã¬ã€ïŒããã³ãããã®ã¢ã¬ã€ãæ§æãããã£ã¹ã¯ïŒã®ã³ã³ãããŒã©ãŒç®¡çãŠãŒãã£ãªãã£ïŒStorCLIãMegaCLIã...ïŒã¯è¡šç€ºãããŸããã ã¢ã¬ã€ã®æææš©ããã®ã³ã³ãããŒã©ãŒã«æž¡ããããšããã«ãã¢ã¬ã€ãšãã£ã¹ã¯ããŠãŒãã£ãªãã£ã®åºåã«ããã«è¡šç€ºããããããã管çã§ããããã«ãªããŸã
ã¢ã«ã¢
ãã¹ããšã¹ã¬ãŒãã®ã³ã³ãããŒã©ãŒã¯ç°ãªãæ¹æ³ã§ã¢ã¬ã€ãšåäœãããããALUAãã©ãã€ã ã䜿çšããŠã¹ãã¬ãŒãžãæ§ç¯ããå¿ èŠããããŸãããããã¯ãã®ãããªå Žåã«ã®ã¿èæ¡ãããŸããã ããããçš®é¡ã®æ©èœããããããããŸãããç§ãã¡ã«ãšã£ãŠã®æå³ã¯ãã¹ãã¬ãŒãžã®ããŒãã®äžéšãæé©å ïŒã€ãŸã䜿çšãæšå¥šïŒãšããŠããŒã¯ã ããã®ä»ãé æé©å ïŒãããããéæšå¥šïŒãšããŠããŒã¯ã§ããããšã§ãã ãããã®ããŒãã¯ãã¹ãŠããã€ã§ãI / OãåŠçã§ããŸãããæé©åãããããŒããžã®ã©ã€ããã¹ãããå Žåãã€ãã·ãšãŒã¿ãŒã¯ãããã䜿çšããŠæ®ããäºçŽããŸãã ãã¹ãŠã®æé©åãããããŒãã«é害ãçºçããå Žåãã€ãã·ãšãŒã¿ãŒïŒãã®å Žåã¯ESXiïŒã¯å°ãèããåŸãæé©åãããŠããªãããŒãã§I / Oãéå§ããŸãã
VMWare ESXiã®èŠ³ç¹ããã¯ã次ã®ããã«ãªããŸãã
æåã®3ã€ã®ãã¹ã¯ã¹ã¬ãŒãã¹ãã¬ãŒãžã«ããããŠ2çªç®ã®3ã€ã®ãã¹ã¯ã¡ã€ã³ã®ãã¹ã«ã€ãªãããŸããã¡ã€ã³ã®ãã¹ã¯I / Oããã«ã¹ããŒãã§åŠçã§ããŸãã
ALUAã䜿çšããŠããªãã£ãå ŽåãI / OèŠæ±ïŒã©ãŠã³ãããã³ã¢ãŒãïŒã¯äž¡æ¹ã®ãªããžããªã«éä¿¡ãããé 延ãšé床ãäžåäžã«ãªããåºæ¬çã«ã¯ãµããªããžããªã®ããã©ãŒãã³ã¹ã«äŸåããŸãã
ã§ããïŒ
SANã§åäœããå€ãã®ããã°ã©ã ïŒMicrosoft Cluster Servicesãªã©ïŒã¯SCSI Persistent Reservationsã«äŸåããŠããŸããããã«ãããLUNããããã¯ããLUNã§ããããçš®é¡ã®ããªãã¯ãæä»çã«å®è¡ã§ããŸãã ãããã£ãŠããããã®åãSCSI PR ã¯å¥ã®ãµãŒããŒã«è€è£œãããŸãã ã
ã€ãŸããã€ãã·ãšãŒã¿ãŒãæåã®ãµãŒããŒãžã®ãã¹ãä»ããŠLUNãããã¯ãã次ã«2çªç®ã®ãµãŒããŒãžã®ãã¹ãä»ããŠããã¯ãèšå®ããå Žåããã®ããã¯ã¯è¡šç€ºãããŸããã ã©ãŠã³ãããã³ã¢ãŒãã§ã®æäœã®å Žåãããã¯ç¹ã«éèŠã§ãããã¹ã絶ããå€åããŠãããããã¯ãèšå®ããããã¹ãäºåã«ããããªãããã§ãã VMWare ESXiã®å ŽåãSCSI PRã¯VMFS5ããŒãžã§ã³ã§ã¯äœ¿çšãããã代ããã«Atomic-Test-and-Setåœä»€ã䜿çšããããããããã¯ååãšããŠåé¡ã§ã¯ãããŸããïŒãã ãããããè€è£œãããå¿ èŠãªãããã¯ã®ã¿ãè¡ããŸãïŒ ïŒLUNå šäœã§ã¯ãªããLUNã®é åãçæéïŒãALUAã¯ESXiã«ãã¡ã€ã³ãµãŒããŒã皌åããŠããéã¯2çªç®ã®ãµãŒããŒãžã®ãã¹ã䜿çšããªãããšãéç¥ããå¿ èŠããããŸãã
SCSI PRåæãå®è£ ããSCSTããŒã¹ã®åçšãœãªã¥ãŒã·ã§ã³ãããã€ããããŸãããç§ã¯ããããè©ŠããŠããŸããã ãããŠãåã«ãããšãäœããã®è§£æ±ºçãããããããã«å ¬éãããã§ãããã
ããŠãçè«ãçµãã£ãããç·Žç¿ã«åãããããŸãããã
ããŒãïŒãœãã
é
ã³ã³ãããŒã©ãŒãµãŒããŒïŒ
- LSI Syncro CS 9286-8e x 1ããã
Syncroã¯çŸåš12Gb / sã®é床ã§å©çšå¯èœã§ãããç§ã¯ããããæããŸããã§ããã ããã«ãMegaRAIDæ©èœãããã«åæžãããŸããïŒCachecadeã¯å®å šã«åé€ãããŸãããã以åã®ããŒãžã§ã³ã§ã¯ãèªã¿åããã£ãã·ã¥ã¢ãŒãã§ã®ã¿ã§ãããïŒã
- Supermicro SC216 2U x 2 ãšã³ã¯ããŒãžã£ãŒ
ãã¡ããã1Uã䜿çšããããšãã§ããŸããããéåžžã«ã¿ã€ããªæ¡åŒµã¹ãããããããã©ãã¯ã¹ããŒã¹ãç¯çŽããå¿ èŠã¯ç¹ã«ãããŸããã§ããã
- MP Supermicro X10SRL-F x 2
å€æ°ã®PCI-Eã¹ãããçšã«éžæãããŠããŸãã
- Intel Xeonããã»ããµãŒE5-1650 v3 x 2
é«åšæ³¢çšã«éžæã
- ã¡ã¢ãªDDR4-2133 16GB ECC Registered x 8
ããŒããŠã§ã¢ã«å€ãã®ã¡ã¢ãªã¯å¿ èŠãããŸããïŒãã ããããŒããã©ã€ããåãããã¹ã±ãããè¿œå ããå Žåãèªã¿åããã£ãã·ã¥ãšããŠéåžžã«äŸ¿å©ã§ãïŒã4ãã£ã³ãã«ã¡ã¢ãªã³ã³ãããŒã©ãŒãšã¢ãžã¥ãŒã«ã®ãã©ãŒãªã³ã°æ©èœãèæ ®ããŠãå°ãããã£ãã·ã¥ã䜿çšã§ããŸãã
- ãã¥ã¢ã«ããŒããã¡ã€ããŒãã£ãã«QLogic 2562 x 4ã³ã³ãããŒã©ãŒ
ãã£ã¹ããš16Gbit QLogic 2672ã¯ãã®æåã«åæ ŒããŸãããããã©ã€ããŒãšã®äºææ§ã®åé¡ãããã«ããã16Gbitã¹ã€ããããããŸããã ãããã£ãŠãéæ³ã®æã䜿çšãããåœåã®éããããã¯ã¹ããŒã¹ã³ã¹ãã®ãããã¥ã¢ã«ããŒã10Gbitãããã¯ãŒã¯ã«ãŒãã«å€ãããŸãã... :)
- Intel DC S3500 80Gb x 4
OSã®äžã®åãµãŒããŒïŒRAID1ïŒã®ãã¢ïŒã¯ããUSBãã©ãã·ã¥ãã©ã€ããŸãã¯SATA DOMãUSBã«é 眮ã§ããŸãããåè ã¯ä¿¡é Œæ§ãäœãïŒæã èœã¡ãïŒãåŸè ã«ã¯ãããã¹ã¯ããæ©èœããããŸããïŒã
ãã£ã¹ã¯ã·ã§ã«ãïŒ
- 72 2.5 " Supermicro SC417E26 x 1ãã©ã€ãã®ã±ãŒã¹
å éšã«ã¯ããã©ãŒã«ããã¬ã©ã³ã¹çšã®ãã¥ã¢ã«ãšã¯ã¹ãã³ããåãã3ã€ã®åäžã®24ãã£ã¹ã¯ããã¯ãã¬ãŒã³ããããŸãã 88å°ã®ãã£ã¹ã¯çšã®ããã«å·šå€§ãªãœãªã¥ãŒã·ã§ã³SC417E16-RJBOD1ããããŸãããä¿¡é Œæ§ã«æªåœ±é¿ãäžãããšã¯ã¹ãã³ããŒã¯1ã€ãããªããæ¡åŒµã¹ãããã¯ã»ãšãã©ãããŸããã ãŸããå°ãªããšã3ã€ïŒå€éšSASããŒããåããããªã ã®ã€ã³ã¹ããŒã«çš-ãµãŒããŒãžã®æ¥ç¶çšã«2ã€ãã«ã¹ã±ãŒããã¹ã±ããçšã«1ã€ïŒãå¿ èŠã§ãã
- 400GBãœãªããã¹ããŒãSASãã©ã€ãHitachi S842E400M2 x 48
è³Œå ¥æã«ã¯ããããã¯åžå Žã§æãä¿¡é Œæ§ãé«ãå®äŸ¡ãªãã®ã§ããïŒSyncroäºææ§ãªã¹ãããïŒã 補é æ¥è ã¯ã5幎éã1ã¬ã³ãŒãããã30ãã¿ãã€ããŸãã¯1æ¥ããã40ãã«ããã®èæ©èæ§ãçŽæããŠããŸãã ãŸããæéãããããŸã...
- Supermicro CSE-PTJBOD-CB2é»æºããŒãïŒã±ãŒã¹ãM / Pãªãã§ãªã³ã«ãªããI2C / SASãä»ããŠã±ãŒã¹ã®é»æºãç£èŠããªãããã«ããïŒãSASã¯ã€ã€ã¯å éšããã³å€éšïŒããã¯ãã¬ãŒã³ãçžäºã«åãæ¿ãããµãŒããŒãã·ã§ã«ãã«æ¥ç¶ããããïŒãªã©ã®ãã®ä»ã®äºçŽ°ãªããšnã
FCã¹ã€ããïŒ
- Cisco MDS9148 x 2
æ¯èŒçå®äŸ¡ã§é«å質ã®ããã€ã¹ïŒ16åã®ã¢ã¯ãã£ãåãããããŒãã§æ®åœ±ããŸããïŒã
ä»ã§ã¯ã16Gbã®9148Sã§ã¯ãªãã販売çµäºã®ããã§ãã
ã³ã¹ããšããã©ãŒãã³ã¹
è³Œå ¥æïŒ2014幎11æïŒã®ãã®ãã¹ãŠã®å¹žçŠïŒ2014幎11æïŒã¯çŽ400äžã«ãŒãã«ã§ã19.2 TBãã©ãã·ã¥ã®ãæªåŠç容éãã§éåžžã«å®äŸ¡ã§ãã æ¯èŒã®ããã«ïŒ24 x 800GB SSDãæèŒããããŒãšã³ããã¥ã¢ã«ã³ã³ãããŒã©ãŒããŒããŠã§ã¢MSA 2040ã®å ŽåãHPã¯çŽ1800äžã®äœããæ±ããŠããŸãïŒã¯ãããã¹ãŠã®çš®é¡ã®å²åŒã«ã€ããŠç¥ã£ãŠããŸãããããŠãã«ã¯æé·ããŸããããããã§ãäŸ¡æ Œã®ãªãŒããŒã¯ããã®ãããªãã®ïŒã
é床ã«é¢ããŠã¯ã85k IOPSãè¶ ããããšã¯ãããŸãããããã1ã€ãããŸãïŒ1ã€ã®ããŒããããvdisk_nullioããã¯ãšã³ãã§75ïŒ ã®CPUè² è·ã§720k IOPSãæ®åœ±ããŸãã ïŒèªã¿åãæã«ãŒããèªã¿åããã¬ã³ãŒããç Žæ£ããŸããäžçš®ã®ã¢ããã°/ dev / nullïŒã
ããã«ãCPUè² è·ã¯ããªãããã®çç±ã§ãIOPSã600kãã720kã«å¢å ããŠçæ£çã«å¢å ããŸã-ãããåçã«å¢å ããåã«ã40ïŒ ãã75ïŒ ã«ã ç·åœ¢é床ã¯ãFCã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠå¶éãããããšãäºæ³ãããŸã-çŽ3 GB / s ïŒ8Gbit FCã®8b / 10bãšã³ã³ãŒããåæãšãããšãçè«äžã¯800 MB / sã®4ããŒãïŒã
SyncroãããLSIãçŽæãã450k IOPSã®çè«äžã®éçã«è¿ã420k IOPSãçµãåºãããšãã§ããŸããã SSDã䜿çšããå Žåãã¢ã¬ã€ã®æžã蟌ã¿ãã£ãã·ã¥ãç¡å¹ã«ãïŒã©ã€ãã¹ã«ãŒã¢ãŒãïŒããã€ã¬ã¯ãI / Oãæå¹ã«ããããšãéåžžã«éèŠã§ããããããªããšã èªã¿åãæã§ãããã©ãŒãã³ã¹ã¯150k IOPSã«ãšã©ãŸããŸãã ãããã¯LSI FastPathãã¯ãããžãŒã®æ©èœã§ããããããã®2ã€ã®æ¡ä»¶ãæºããããå Žåã«ã®ã¿ã¢ã¯ãã£ãã«ãªããŸãã
ã¢ã¬ã€ããã®ç·åœ¢èªã¿åãé床ã¯3.8GB / sã«éããŸãã ããã§ã¯ãããããã³ã³ãããŒã©ãŒèªäœã®ããã©ãŒãã³ã¹ã«ãã£ãŠå¶éãããŸãïŒPCI-E 3.0 x8ãã¹ã¯8GB / sããã³ãã§ããŸãïŒã
ãã詳现ãªãã³ãããŒã¯ã¯ã第2éšã«ãããšæããŸãã
ãµãŒããŒã¢ã»ã³ããª
ç¹å¥ãªããšã¯äœããããŸããã
åãµãŒããŒã«ããã¶ãŒããŒããããã»ããµãã¡ã¢ãªã2ã€ã®FCã³ã³ãããŒã©ãŒã1ã€ã®Syncroãã€ã³ã¹ããŒã«ããŸãã
ãŸããã±ãŒã¹ã®èé¢ã«ãã2ã€ã®ãã£ã¹ã¯ã«å°ããªãã¹ã±ããïŒSupermicro MCP-220-82609-0NïŒãåãä»ããOSã®äžã«SSDãæ¿å ¥ããŸããã ã±ãŒã¹ã®ã¡ã€ã³ãã¹ã±ããã¯åœé¢ã¯æªäœ¿çšã®ãŸãŸã§ãããå°æ¥çã«ã¯Syncroã«æ¥ç¶ããããšãã§ããŸãããããã«ãããœãªã¥ãŒã·ã§ã³ã®ãã©ãŒã«ããã¬ã©ã³ããªæ§è³ªãç Žå£ãããŸãïŒåæã«1ã€ã®ããŒãããªãã«ãªããåæã«ããã¯ãã¬ãŒã³ãåæãããŸãïŒã
ä¿¡é Œæ§ã«é¢ããéèŠãªã¢ããã€ã¹ã¯ãBIOSã§ã¡ã¢ãªãã©ãŒãªã³ã°ãèšå®ããããšã§ããããã¯DDRçšã®RAID1ã®äžçš®ã§ãã
è³ã¯ååã«ãªããŸãããä¿¡é Œæ§ã¯åçã«åäžããŸãã ããŠãå¿ å®ãã®ããã«memtestã®é±ããã©ã€ãããŠãã ããã BIOSãšã©ãŒã§ã¯ãECCãšã©ãŒãååšããå Žåã¯ããã«ã€ããŠèªã¿åããŸã-æ éããã¢ãžã¥ãŒã«ãå€æŽããå床ãã©ã€ãããŸãã ä»ãŸã§ã®ãšãããããããä¿®æ£å¯èœãªãšã©ãŒã§ããå ŽåãèŽåœçã«ãªãå¯èœæ§ãããããã®ãããªå ŽåããããŸããã
é ç·å³
SAS
次ã®å³ã¯ãSyncroã®ããã¥ã¡ã³ãããçãŸãããã®ã§ãã
ãã®æ¥ç¶ã®æ·±ãæå³ã¯ããã£ã¹ã¯ã·ã§ã«ãã®1ã€ãæ éãããš
2çªç®ã¯åŒãç¶ãæ©èœããŸãã æ£ã次ã ã«æ¥ç¶ãããšïŒãã€ãžãŒãã§ãŒã³ïŒã
ãã§ãŒã³ã®æåã®ã·ã§ã«ãã«é害ãçºçãããšãä»ã®å šå¡ãšã®éä¿¡ã倱ãããŸãã
ãããŠãããã«ã¯ãè¿œå ã®ã·ã§ã«ããæ¥ç¶ãããŠããå Žåã®ããªã³ã°ãããããžãŒã®ãããªãã®ããããŸã
äºäººã®éã
ãã®äŸã§ã¯ãã·ã§ã«ãã1ã€ãããªãããïŒããã¯ãã¬ãŒã³ã3ã€ããå Žåã§ãïŒãæ¥ç¶ããŸãã
ãã®ããã«ïŒ
ã·ã§ã«ãã®å éšã§ã¯ãããã¯ãã¬ãŒã³ãçŽåã«æ¥ç¶ãããŠããŸãã
FC
次ã®ããã«ãµãŒããŒãFCã¹ã€ããã«æ¥ç¶ããŸãã
ãããã£ãŠãããããã®HBAã«ãŒãããã³/ãŸãã¯1ã€ã®ã¹ã€ããã«é害ãçºçããå Žåãæ¥ç¶ã確ç«ãããŸãã
ãã ããã ãè©°ãïŒ ã¹ã€ããããã©ã³ã¯ãä»ã®ISLã§çžäºæ¥ç¶ããªãã§ãã ããïŒ
ãããã¯2ã€ã®ç¬ç«ããå·¥å Žã§ãªããã°ãªããŸããã
ãªããªãããããã®1ã€ãèšå®ããéã«ãã¹ãç¯ããå ŽåïŒãŸãã¯ãœãããŠã§ã¢ã倱æããå ŽåïŒãããã¯2ã€ç®ã«åœ±é¿ããŸããïŒFCã§ã¯ããŸãŒãã³ã°ããã³ãã®ä»ã®èšå®ã¯å·¥å Žã®ãã¹ãŠã®ã¹ã€ããã«é©çšãããŸãïŒã
ã1ã€ã®ã€ãã·ãšãŒã¿ãŒããŒããš1ã€ã®ã¹ãã¬ãŒãžããŒããã®ååã«åºã¥ããŠãŸãŒãã³ã°ããŸããã
å€æ°ã®ã€ãã·ãšãŒã¿ãŒãååšããå ŽåããŸãŒã³ã®æ°ã¯[ã€ãã·ãšãŒã¿ãŒããŒãã®æ°] X [ã¹ãã¬ãŒãžããŒãã®æ°]ãšçãããªããããããã«ã¯æéãããããŸã ã ãã ããã¹ãã¬ãŒãžããŒããšãŸãŒã³ã€ãã·ãšãŒã¿ãŒã®ãªã¹ããã¹ã¯ãªããã§ç°¡åã«çæã§ããŸã:)æ azineã¯é²æ©ã®ãšã³ãžã³ã§ãã
ãœãããŠã§ã¢éš
- Debian Linux 7 x86-64
- ã«ãŒãã«3.14.xx LTS
éåžžã«é«ãããã©ãŒãã³ã¹ãå¿ èŠãªå Žåã¯ã SCSI-MQãµããŒããçµã¿èŸŒãŸããŠããããã1ã€ã®LUNã§100äž+ IOPSãéæã§ããããã3.18 +ã³ã¢ã«ç®ãåãã䟡å€ããããŸãã
ããããå€ãã®ã€ãã·ãšãŒã¿ãŒãè€æ°ã®LUNã«æ¥ç¶ããå Žåããã®å Žåã®ãã³ãããŒã¯ã§ã¯SCSI-MQãéåžžã®ã¹ã¿ãã¯ãããå€å°é ããªããããããã¯æ害ã§ãããããŸãã ãã1ã€ã®ãã€ãã¹ç¹ã¯ãSCSI-MQã«I / Oã¹ã±ãžã¥ãŒã©ãŒïŒãããã©ã€ã³ãcfqïŒããªãããšã§ããããã¯äžè¬ã«è«ççã§ããSSDã¹ã±ãžã¥ãŒã©ãŒã¯å¿ èŠãããŸããããSCSI-MQã«ã¯æå³ããããŸãããIOPSã¯ãœãããŠã§ã¢ã®å¶éããããé¢ããŠããŸãã ããããæ··åæ§æïŒSSD + HDDïŒã§ã¯ãããã¯HDDãåããã¢ã¬ã€ã®äœæ¥é床ã«æªåœ±é¿ãäžããå¯èœæ§ããããŸãã - SCSTã¿ãŒã²ãããã¬ãŒã ã¯ãŒã¯3.0.1
ããã§ã¯ãã¹ãŠãå€ããå°ãªããæšæºã§ãããããã®ãã¶ãŒããŒãã«ã¯éã®è¥²æããªããããOSããœããLinuxã®è¥²æïŒmdraidïŒã«çœ®ããŸãã
次ã«ãã«ãŒãã«ãæ§æããã³ã¢ã»ã³ãã«ããŸãã
ç§ã®èšå®ã誰ãã䟿å©ã«ãªãããšãã§ããŸã
CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_XZ=y CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_FHANDLE=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_TREE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=64 CONFIG_RCU_FANOUT_LEAF=16 CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y CONFIG_ARCH_USES_NUMA_PROT_NONE=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_NUMA_BALANCING=y CONFIG_CGROUPS=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_BLK_CGROUP=y CONFIG_NAMESPACES=y CONFIG_SCHED_AUTOGROUP=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_UID16=y CONFIG_KALLSYMS=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_PCI_QUIRKS=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_EVENTS=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y CONFIG_SLUB=y CONFIG_SLUB_CPU_PARTIAL=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y CONFIG_PARTITION_ADVANCED=y CONFIG_MSDOS_PARTITION=y CONFIG_EFI_PARTITION=y CONFIG_BLOCK_COMPAT=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_DEADLINE=y CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_PADATA=y CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_NO_BOOTMEM=y CONFIG_MCORE2=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_P6_NOP=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=32 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_PREEMPT_NONE=y CONFIG_X86_UP_APIC_MSI=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_THERMAL_VECTOR=y CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DIRECT_GBPAGES=y CONFIG_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y CONFIG_NODES_SHIFT=2 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_DEFAULT_MMAP_MIN_ADDR=0 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_SECCOMP=y CONFIG_HZ_100=y CONFIG_HZ=100 CONFIG_SCHED_HRTICK=y CONFIG_PHYSICAL_START=0x1000000 CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_ACPI=y CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_HED=y CONFIG_ACPI_APEI=y CONFIG_ACPI_APEI_GHES=y CONFIG_ACPI_APEI_PCIEAER=y CONFIG_ACPI_APEI_MEMORY_FAILURE=y CONFIG_ACPI_EXTLOG=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_X86_ACPI_CPUFREQ=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_INTEL_IDLE=y CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y CONFIG_PCIEASPM=y CONFIG_PCIEASPM_PERFORMANCE=y CONFIG_PCI_MSI=y CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y CONFIG_BINFMT_SCRIPT=y CONFIG_COREDUMP=y CONFIG_IA32_EMULATION=y CONFIG_X86_X32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_IOSF_MBI=m CONFIG_NET=y CONFIG_PACKET=y CONFIG_PACKET_DIAG=y CONFIG_UNIX=y CONFIG_UNIX_DIAG=y CONFIG_INET=y CONFIG_TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION=y CONFIG_IP_MULTICAST=y CONFIG_NET_IPIP=y CONFIG_NET_IPGRE_DEMUX=y CONFIG_NET_IP_TUNNEL=y CONFIG_NET_IPGRE=y CONFIG_NET_IPGRE_BROADCAST=y CONFIG_INET_TUNNEL=y CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_INET_UDP_DIAG=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_HTCP=y CONFIG_DEFAULT_HTCP=y CONFIG_DEFAULT_TCP_CONG="htcp" CONFIG_STP=y CONFIG_BRIDGE=y CONFIG_HAVE_NET_DSA=y CONFIG_VLAN_8021Q=y CONFIG_LLC=y CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_NET_FLOW_LIMIT=y CONFIG_HAVE_BPF_JIT=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PNP=y CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_HAVE_IDE=y CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_SG=y CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_FC_ATTRS=y CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_LOWLEVEL=y CONFIG_MEGARAID_SAS=y CONFIG_ATA=y CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y CONFIG_MD_RAID10=y CONFIG_MD_RAID456=y CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_ZERO=y CONFIG_DM_UEVENT=y CONFIG_NETDEVICES=y CONFIG_NET_CORE=y CONFIG_BONDING=y CONFIG_NET_FC=y CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_TUN=y CONFIG_ETHERNET=y CONFIG_MDIO=y CONFIG_NET_VENDOR_INTEL=y CONFIG_E1000E=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCA=y CONFIG_PPP=y CONFIG_PPP_DEFLATE=y CONFIG_PPP_FILTER=y CONFIG_PPP_MULTILINK=y CONFIG_PPPOE=y CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=y CONFIG_SLHC=y CONFIG_INPUT=y CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_LIBPS2=y CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_NR_UARTS=2 CONFIG_SERIAL_8250_RUNTIME_UARTS=2 CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_HPET=y CONFIG_HPET_MMAP=y CONFIG_HPET_MMAP_DEFAULT=y CONFIG_DEVPORT=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_I801=y CONFIG_I2C_SCMI=y CONFIG_PPS=y CONFIG_PTP_1588_CLOCK=y CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_HWMON=y CONFIG_HWMON_VID=y CONFIG_SENSORS_CORETEMP=y CONFIG_SENSORS_JC42=y CONFIG_SENSORS_W83627EHF=y CONFIG_SENSORS_ACPI_POWER=y CONFIG_THERMAL=y CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_SSB_POSSIBLE=y CONFIG_BCMA_POSSIBLE=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_CONSOLE=y CONFIG_DUMMY_CONSOLE=y CONFIG_HID=y CONFIG_HIDRAW=y CONFIG_HID_GENERIC=y CONFIG_HID_A4TECH=y CONFIG_HID_APPLE=y CONFIG_HID_BELKIN=y CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y CONFIG_HID_CYPRESS=y CONFIG_HID_EZKEY=y CONFIG_HID_KENSINGTON=y CONFIG_HID_LOGITECH=y CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_UHCI_HCD=y CONFIG_USB_ACM=y CONFIG_USB_WDM=y CONFIG_USB_STORAGE=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_FTDI_SIO=y CONFIG_USB_SERIAL_PL2303=y CONFIG_USB_SERIAL_WWAN=y CONFIG_USB_SERIAL_OPTION=y CONFIG_EDAC=y CONFIG_EDAC_MM_EDAC=y CONFIG_EDAC_GHES=y CONFIG_EDAC_I7CORE=y CONFIG_EDAC_SBRIDGE=y CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_SYSTOHC=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y CONFIG_RTC_DRV_CMOS=y CONFIG_DMADEVICES=y CONFIG_INTEL_IOATDMA=y CONFIG_DMA_ENGINE=y CONFIG_DMA_ACPI=y CONFIG_ASYNC_TX_DMA=y CONFIG_DMA_ENGINE_RAID=y CONFIG_DCA=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_UEFI_CPER=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_JBD2=y CONFIG_FS_MBCACHE=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FUSE_FS=y CONFIG_CUSE=y CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y CONFIG_PSTORE=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_855=y CONFIG_NLS_CODEPAGE_866=y CONFIG_NLS_CODEPAGE_1251=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_5=y CONFIG_NLS_ISO8859_15=y CONFIG_NLS_KOI8_R=y CONFIG_NLS_UTF8=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 CONFIG_FRAME_WARN=1024 CONFIG_STRIP_ASM_SYMS=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_HAVE_DEBUG_KMEMLEAK=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_DEBUG_BUGVERBOSE=y CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y CONFIG_HAVE_ARCH_KGDB=y CONFIG_STRICT_DEVMEM=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_DOUBLEFAULT=y CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_OPTIMIZE_INLINING=y CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=y CONFIG_ASYNC_CORE=y CONFIG_ASYNC_MEMCPY=y CONFIG_ASYNC_XOR=y CONFIG_ASYNC_PQ=y CONFIG_ASYNC_RAID6_RECOV=y CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_PCRYPT=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_ABLK_HELPER=y CONFIG_CRYPTO_GLUE_HELPER_X86=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=y CONFIG_CRYPTO_VMAC=y CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=y CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_CRC32_PCLMUL=y CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=y CONFIG_CRYPTO_SHA256_SSSE3=y CONFIG_CRYPTO_SHA512_SSSE3=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=y CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_HAVE_KVM=y CONFIG_RAID6_PQ=y CONFIG_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IO=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y CONFIG_CRC32_SLICEBY8=y CONFIG_LIBCRC32C=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_DDR=y
debããã±ãŒãžãžã®ã³ã³ãã€ã«ãšã¢ã»ã³ããªãéå§ããŸãã
# cd /usr/src/linux-3.14.xx # fakeroot make-kpkg clean # CONCURRENCY_LEVEL=12 fakeroot make-kpkg --us --uc --jobs 12 --stem=kernel-scst --revision=1 kernel_image
次ã«ãSCSTãåºåããã¢ã»ã³ãã«ããŠã€ã³ã¹ããŒã«ããŸãïŒã«ãŒãã«ãœãŒã¹ã®ãã¹ãæå®ããŸãïŒã
# svn checkout svn://svn.code.sf.net/p/scst/svn/branches/3.0.x scst-svn # cd scst-svn # BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y KDIR="/usr/src/linux-3.14.xx" make all install
QLogicã®ãã©ã€ããŒã䜿çšããSCSTã®ã€ã³ã¹ããŒã«ã«é¢ãã詳现ãªæé ã¯ããããžã§ã¯ãã®Webãµã€ãã§èŠã€ããããšãã§ããŸãïŒãã ããQLogicãã©ã€ããŒã¯GITããªãŒããã¢ã»ã³ãã«ãããŠãããç¹ã«å®å®ããŠããããã«ã¯èŠããŸããã§ãããSCSTããããããã©ã€ããŒãååŸããŸãïŒã
ãã®çµæãã«ãŒãã«+ãã£ã¬ã¯ããª/lib/modules/3.14.xx/extraãšSCSTã¢ãžã¥ãŒã«ãå«ãããã±ãŒãžãåãåããŸãããããã¯ããµãŒããŒã«æåã§ã³ããŒããå¿ èŠããããŸãã ãã¡ããããããã.debããã±ãŒãžã«çŽæ¥çµ±åããæ¹æ³ãèããããšãã§ããŸãããç§ã¯é¢åã§ããã
FCã«ãŒããæ©èœãããã«ã¯ãã¢ããã¿ãŒã«ã¢ããããŒãããïŒããæ£ç¢ºã«ã¯ãæ¢ã«ããã€ãããããæŽæ°ããïŒãã¡ãŒã ãŠã§ã¢ãå¿ èŠã§ãã/lib/ãã¡ãŒã ãŠã§ã¢ã«çœ®ãã ãã§ããã©ã€ããŒã¯ããŒãæã«ãã«ã¢ããããŸãã ç§ã¯ãå¿ å®ã§ãããã¡ãŒã«ãŒãæšå¥šããããã«ããããšããã®äž¡æ¹ãè¡ããŸããã Qlogic-qaucliããLinuxãŠãŒãã£ãªãã£ãä»ããŠããŸãã¯ãµã€ãããç¬èªã®ãœãããŠã§ã¢ã䜿çšããŠFreeDOSïŒãŸãã¯EFIïŒãããã©ãã·ã¥ã§ããŸãã
ãã¡ãŒã ãŠã§ã¢ïŒãã®å Žåã¯ql2500_fw.binïŒãããŠã³ããŒããããã®å Žæã«é 眮ããŸãã
# mkdir -p /lib/firmware # cd /lib/firmware # wget http://ldriver.qlogic.com/firmware/ql2500_fw.bin
次ã«ãscstadminãšããååã®SCST管çãŠãŒãã£ãªãã£ãšãããã«äœ¿çšãããã©ã€ãã©ãªãå¿ èŠã§ãã SCSTãœãŒã¹ããªãŒã«ãããŠãŒãã£ãªãã£scstadmin / scstadmin.sysfs / scstadminãååŸãããµãŒããŒã®/ usr / binã®ã©ããã«é 眮ããŠãå šå¡ãèŠããããã«ããŸãã 次ã«ããã£ã¬ã¯ããªscstadmin / scstadmin.sysfs / scst-0.9.10 / lib / SCSTãååŸãã / usr / lib / perl / <ããŒãžã§ã³ã®Perl>ã«é 眮ããŸãã
次ã«ãPacemakerãã€ã³ã¹ããŒã«ããŠã¯ã©ã¹ã¿ãŒãæäœããèªèšŒããŒãçæããŸãã
Pacemakerã¯ãããŒãã®ç¶æ ã«å¿ããŠALUAã¢ãŒããåãæ¿ããŸãã
# apt-get -t wheezy-backports install pacemaker # corosync-keygen
ããŒãã¡ã€ã«/ etc / corosync / authkey㯠ãåãå Žæã®2çªç®ã®ãµãŒããŒã«è»¢éãããŸãã
Pacemakerãä»ããŠSCSTãå¶åŸ¡ããã«ã¯ãããªãœãŒã¹ããå¿ èŠã§ããããã¯ESOSãããžã§ã¯ãããååŸããèªåã§èª¿æŽããŸããã
è³æº
#! /bin/sh # # $Id$ # # Resource Agent for managing the Generic SCSI Target Subsystem # for Linux (SCST) and related daemons. # # License: GNU General Public License (GPL) # (c) 2012-2014 Marc A. Smith # # Initialization : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat} . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs MODULES="scst scst_vdisk qla2x00tgt" SCST_CFG="/etc/scst.conf" PRE_SCST_CONF="/etc/pre-scst_xtra_conf" POST_SCST_CONF="/etc/post-scst_xtra_conf" SCST_SYSFS="/sys/kernel/scst_tgt" ALUA_STATES="active nonoptimized standby unavailable offline transitioning" NO_CLOBBER="/tmp/scst_ra-no_clobber" # For optional SCST modules if [ -f "/lib/modules/$(uname -r)/extra/ocs_fc_scst.ko" ]; then MODULES="${MODULES} ocs_fc_scst" fi if [ -f "/lib/modules/$(uname -r)/extra/chfcoe.ko" ]; then MODULES="${MODULES} chfcoe" fi scst_start() { # Exit immediately if configuration is not valid scst_validate_all || exit ${?} # If resource is already running, bail out early if scst_monitor; then ocf_log info "Resource is already running." return ${OCF_SUCCESS} fi # If our pre-SCST file exists, run it if [ -f "${PRE_SCST_CONF}" ]; then ocf_log info "Pre-SCST user config. file found; running..." ocf_run -warn sh "${PRE_SCST_CONF}" fi # Load all modules ocf_log info "Loading kernel modules..." for i in ${MODULES}; do ocf_log debug "scst_start() -> Module: ${i}" if [ -d /sys/module/${i} ]; then ocf_log warn "The ${i} module is already loaded!" else ocf_run modprobe ${i} || exit ${OCF_ERR_GENERIC} fi done # Configure SCST if [ -f "${SCST_CFG}" ]; then ocf_log info "Applying SCST configuration..." ocf_run scstadmin -config "${SCST_CFG}" # Prevent scst_stop() from clobbering the configuration file if [ ${?} -ne 0 ]; then ocf_log err "Something is wrong with the SCST configuration!" ocf_run touch "${NO_CLOBBER}" exit ${OCF_ERR_GENERIC} else if [ -f "${NO_CLOBBER}" ]; then ocf_run rm -f "${NO_CLOBBER}" fi fi fi # If our post-SCST file exists, run it if [ -f "${POST_SCST_CONF}" ]; then ocf_log info "Post-SCST user config. file found; running..." ocf_run -warn sh "${POST_SCST_CONF}" fi # If we are using ALUA, be sure we are using the "Slave" state initially if ocf_is_true ${OCF_RESKEY_alua}; then check_alua # Set the local target group ALUA state ocf_log debug "scst_start() -> Setting target group" \ "'${OCF_RESKEY_local_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_s_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_local_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_s_alua_state} || exit ${OCF_ERR_GENERIC} # For now, we simply assume the other node is the Master ocf_log debug "scst_start() -> Setting target group" \ "'${OCF_RESKEY_remote_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_m_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_remote_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_m_alua_state} || exit ${OCF_ERR_GENERIC} fi # Make sure the resource started correctly while ! scst_monitor; do ocf_log debug "scst_start() -> Resource has not started yet, waiting..." sleep 1 done # Only return $OCF_SUCCESS if _everything_ succeeded as expected return ${OCF_SUCCESS} } scst_stop() { # Exit immediately if configuration is not valid scst_validate_all || exit ${?} # Check the current resource state scst_monitor local rc=${?} case "${rc}" in "${OCF_SUCCESS}") # Currently running; normal, expected behavior ocf_log info "Resource is currently running." ;; "${OCF_RUNNING_MASTER}") # Running as a Master; need to demote before stopping ocf_log info "Resource is currently running as Master." scst_demote || ocf_log warn "Demote failed, trying to stop anyway..." ;; "${OCF_NOT_RUNNING}") # Currently not running; nothing to do ocf_log info "Resource is already stopped." return ${OCF_SUCCESS} ;; esac # Unload the modules (in reverse) ocf_log info "Unloading kernel modules..." for i in $(echo ${MODULES} | tr ' ' '\n' | tac | tr '\n' ' '); do ocf_log debug "scst_stop() -> Module: ${i}" if [ -d /sys/module/${i} ]; then ocf_run rmmod -w ${i} || exit ${OCF_ERR_GENERIC} else ocf_log warn "The ${i} module is not loaded!" fi done # Make sure the resource stopped correctly while scst_monitor; do ocf_log info "scst_stop() -> Resource has not stopped yet, waiting..." sleep 1 done # Only return $OCF_SUCCESS if _everything_ succeeded as expected return ${OCF_SUCCESS} } scst_monitor() { # Exit immediately if configuration is not valid scst_validate_all || exit ${?} # Check if SCST is loaded local rc if [ -e "${SCST_SYSFS}/version" ]; then ocf_log debug "scst_monitor() -> SCST version:" \ "$(cat ${SCST_SYSFS}/version)" ocf_log debug "scst_monitor() -> Resource is running." crm_master -l reboot -v 100 rc=${OCF_SUCCESS} else ocf_log debug "scst_monitor() -> Resource is not running." crm_master -l reboot -D rc=${OCF_NOT_RUNNING} return ${rc} fi # If we are using ALUA, then we can test if we are Master or not if ocf_is_true ${OCF_RESKEY_alua}; then dev_grp_path="${SCST_SYSFS}/device_groups/${OCF_RESKEY_device_group}" tgt_grp_path="${dev_grp_path}/target_groups/${OCF_RESKEY_local_tgt_grp}" tgt_grp_state="$(head -1 ${tgt_grp_path}/state)" ocf_log debug "scst_monitor() -> SCST local target" \ "group state: ${tgt_grp_state}" if [ "x${tgt_grp_state}" = "x${OCF_RESKEY_m_alua_state}" ]; then rc=${OCF_RUNNING_MASTER} fi fi return ${rc} } scst_validate_all() { # Test for required binaries check_binary scstadmin # There can only be one instance of SCST running per node if [ ! -z "${OCF_RESKEY_CRM_meta_clone_node_max}" ] && [ "${OCF_RESKEY_CRM_meta_clone_node_max}" -ne 1 ]; then ocf_log err "The 'clone-node-max' parameter must equal '1'." exit ${OCF_ERR_CONFIGURED} fi # If ALUA support is enabled, we need to check the parameters if ocf_is_true ${OCF_RESKEY_alua}; then # Make sure they are set to something if [ -z "${OCF_RESKEY_device_group}" ]; then ocf_log err "The 'device_group' parameter is not set!" exit ${OCF_ERR_CONFIGURED} fi if [ -z "${OCF_RESKEY_local_tgt_grp}" ]; then ocf_log err "The 'local_tgt_grp' parameter is not set!" exit ${OCF_ERR_CONFIGURED} fi if [ -z "${OCF_RESKEY_remote_tgt_grp}" ]; then ocf_log err "The 'remote_tgt_grp' parameter is not set!" exit ${OCF_ERR_CONFIGURED} fi if [ -z "${OCF_RESKEY_m_alua_state}" ]; then ocf_log err "The 'm_alua_state' parameter is not set!" exit ${OCF_ERR_CONFIGURED} fi if [ -z "${OCF_RESKEY_s_alua_state}" ]; then ocf_log err "The 's_alua_state' parameter is not set!" exit ${OCF_ERR_CONFIGURED} fi # Currently, we only support using one Master with this RA if [ ! -z "${OCF_RESKEY_CRM_meta_master_max}" ] && [ "${OCF_RESKEY_CRM_meta_master_max}" -ne 1 ]; then ocf_log err "The 'master-max' parameter must equal '1'." exit ${OCF_ERR_CONFIGURED} fi if [ ! -z "${OCF_RESKEY_CRM_meta_master_node_max}" ] && [ "${OCF_RESKEY_CRM_meta_master_node_max}" -ne 1 ]; then ocf_log err "The 'master-node-max' parameter must equal '1'." exit ${OCF_ERR_CONFIGURED} fi fi return ${OCF_SUCCESS} } scst_meta_data() { cat <<-EOF <?xml version="1.0"?> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> <resource-agent name="scst" version="0.1"> <version>0.1</version> <longdesc lang="en">The SCST OCF resource agent for ESOS; includes SCST ALUA support.</longdesc> <shortdesc lang="en">SCST OCF RA script for ESOS.</shortdesc> <parameters> <parameter name="alua" unique="0" required="0"> <longdesc lang="en">Use to enable/disable updating ALUA status in SCST.</longdesc> <shortdesc lang="en">The 'alua' parameter.</shortdesc> <content type="boolean" default="false" /> </parameter> <parameter name="device_group" unique="0" required="0"> <longdesc lang="en">The name of the SCST device group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'device_group' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="local_tgt_grp" unique="0" required="0"> <longdesc lang="en">The name of the SCST local target group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'local_tgt_grp' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="remote_tgt_grp" unique="0" required="0"> <longdesc lang="en">The name of the SCST remote target group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'remote_tgt_grp' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="m_alua_state" unique="0" required="0"> <longdesc lang="en">The ALUA state (eg, active) for a Master node (used with ALUA support).</longdesc> <shortdesc lang="en">The 'm_alua_state' parameter.</shortdesc> <content type="string" default="active" /> </parameter> <parameter name="s_alua_state" unique="0" required="0"> <longdesc lang="en">The ALUA state (eg, nonoptimized) for a Slave node (used with ALUA support).</longdesc> <shortdesc lang="en">The 's_alua_state' parameter.</shortdesc> <content type="string" default="nonoptimized" /> </parameter> </parameters> <actions> <action name="meta-data" timeout="5" /> <action name="start" timeout="120" /> <action name="stop" timeout="60" /> <action name="monitor" timeout="20" depth="0" interval="10" role="Master" /> <action name="monitor" timeout="20" depth="0" interval="20" role="Slave" /> <action name="notify" timeout="20" /> <action name="promote" timeout="20" /> <action name="demote" timeout="20" /> <action name="reload" timeout="20" /> <action name="validate-all" timeout="20" /> </actions> </resource-agent> EOF } scst_usage() { echo "usage: ${0} {start|stop|monitor|validate-all|promote|demote|reload|notify|meta-data}" echo "" echo "Expects to have a fully populated OCF RA-compliant environment set." } scst_promote() { # Exit immediately if configuration is not valid scst_validate_all || exit ${?} # Test the resource's current state scst_monitor local rc=${?} case "${rc}" in "${OCF_SUCCESS}") # Running as Slave; normal, expected behavior ocf_log debug "scst_promote() -> Resource is" \ "currently running as Slave." ;; "${OCF_RUNNING_MASTER}") # Already a Master; unexpected, but not a problem ocf_log info "Resource is already running as Master." return ${OCF_SUCCESS} ;; "${OCF_NOT_RUNNING}") # Currently not running; need to start before promoting ocf_log info "Resource is currently not running." scst_start ;; *) # Failed resource; let the cluster manager recover ocf_log err "Unexpected error, cannot promote." exit ${rc} ;; esac # Promote only makes sense if we are using ALUA if ocf_is_true ${OCF_RESKEY_alua}; then check_alua # Set the local target group to the "Master" ALUA state ocf_log debug "scst_promote() -> Setting target group" \ "'${OCF_RESKEY_local_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_m_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_local_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_m_alua_state} || exit ${OCF_ERR_GENERIC} # Since there can only be one Master, set the remote target group ocf_log debug "scst_promote() -> Setting target group" \ "'${OCF_RESKEY_remote_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_s_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_remote_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_s_alua_state} || exit ${OCF_ERR_GENERIC} else ocf_log err "The ALUA parameters need to be configured before using MS." exit ${OCF_ERR_CONFIGURED} fi # After the resource has been promoted, check whether the promotion worked while true; do scst_monitor if [ ${?} -eq ${OCF_RUNNING_MASTER} ]; then ocf_log info "Resource was promoted successfully." break else ocf_log debug "scst_promote() -> Resource still" \ "awaiting promotion." sleep 1 fi done # Only return $OCF_SUCCESS if _everything_ succeeded as expected return ${OCF_SUCCESS} } scst_demote() { # Exit immediately if configuration is not valid scst_validate_all || exit ${?} # Test the resource's current state scst_monitor local rc=${?} case "${rc}" in "${OCF_RUNNING_MASTER}") # Running as Master; normal, expected behavior ocf_log debug "scst_demote() -> Resource is" \ "currently running as Master." ;; "${OCF_SUCCESS}") # Already running as Slave; nothing to do ocf_log debug "scst_demote() -> Resource is" \ "currently running as Slave." return ${OCF_SUCCESS} ;; "${OCF_NOT_RUNNING}") # Not running; getting a demote action in this state is unexpected ocf_log err "Resource is currently not running." exit ${OCF_ERR_GENERIC} ;; *) # Failed resource; let the cluster manager recover ocf_log err "Unexpected error, cannot demote." exit ${rc} ;; esac # Demote only makes sense if we are using ALUA if ocf_is_true ${OCF_RESKEY_alua}; then check_alua # Set the local target group to the "Slave" ALUA state ocf_log debug "scst_demote() -> Setting target group" \ "'${OCF_RESKEY_local_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_s_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_local_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_s_alua_state} || exit ${OCF_ERR_GENERIC} # If we're a Slave, we assume the remote side is the Master ocf_log debug "scst_demote() -> Setting target group" \ "'${OCF_RESKEY_remote_tgt_grp}' ALUA state to" \ "'${OCF_RESKEY_m_alua_state}'..." ocf_run scstadmin -noprompt -set_tgrp_attr \ ${OCF_RESKEY_remote_tgt_grp} -dev_group \ ${OCF_RESKEY_device_group} -attributes \ state\=${OCF_RESKEY_m_alua_state} || exit ${OCF_ERR_GENERIC} else ocf_log err "The ALUA parameters need to be configured before using MS." exit ${OCF_ERR_CONFIGURED} fi # After the resource has been demoted, check whether the demotion worked while true; do scst_monitor if [ ${?} -eq ${OCF_RUNNING_MASTER} ]; then ocf_log debug "scst_demote() -> Resource still" \ "awaiting demotion." sleep 1 else ocf_log info "Resource was demoted successfully." break fi done # Only return $OCF_SUCCESS if _everything_ succeeded as expected return ${OCF_SUCCESS} } scst_notify() { # We're currently not using this ocf_log debug "scst_notify() -> Received a" \ "'${OCF_RESKEY_CRM_meta_notify_type}' /" \ "'${OCF_RESKEY_CRM_meta_notify_operation}' notification." return ${OCF_SUCCESS} } check_alua() { # Make sure the directories exist in the SCST sysfs structure if [ ! -d "${SCST_SYSFS}/device_groups/${OCF_RESKEY_device_group}" ]; then ocf_log err "The '${OCF_RESKEY_device_group}' device group does not exist!" exit ${OCF_ERR_INSTALLED} fi target_groups="${SCST_SYSFS}/device_groups/${OCF_RESKEY_device_group}/target_groups" if [ ! -d "${target_groups}/${OCF_RESKEY_local_tgt_grp}" ]; then ocf_log err "The '${OCF_RESKEY_local_tgt_grp}' target group does not exist!" exit ${OCF_ERR_INSTALLED} fi if [ ! -d "${target_groups}/${OCF_RESKEY_remote_tgt_grp}" ]; then ocf_log err "The '${OCF_RESKEY_remote_tgt_grp}' target group does not exist!" exit ${OCF_ERR_INSTALLED} fi # Check that the given ALUA states are valid local valid_m_alua_state=0 local valid_s_alua_state=0 for i in ${ALUA_STATES}; do if [ "x${OCF_RESKEY_m_alua_state}" = "x${i}" ]; then valid_m_alua_state=1 fi if [ "x${OCF_RESKEY_s_alua_state}" = "x${i}" ]; then valid_s_alua_state=1 fi done if [ ${valid_m_alua_state} -eq 0 ]; then ocf_log err "The 'm_alua_state' value is not valid: ${OCF_RESKEY_m_alua_state}" exit ${OCF_ERR_INSTALLED} fi if [ ${valid_s_alua_state} -eq 0 ]; then ocf_log err "The 's_alua_state' value is not valid: ${OCF_RESKEY_s_alua_state}" exit ${OCF_ERR_INSTALLED} fi } # Make sure meta-data and usage always succeed case ${__OCF_ACTION} in meta-data) scst_meta_data exit ${OCF_SUCCESS} ;; usage|help) scst_usage exit ${OCF_SUCCESS} ;; esac # Anything other than meta-data and usage must pass validation scst_validate_all || exit ${?} # Translate each action into the appropriate function call case ${__OCF_ACTION} in start) scst_start ;; stop) scst_stop ;; status|monitor) scst_monitor ;; notify) scst_notify ;; promote) scst_promote ;; demote) scst_demote ;; reload) ocf_log info "Reloading..." scst_start ;; validate-all) ;; migrate_to|migrate_from) scst_usage exit ${OCF_ERR_UNIMPLEMENTED} ;; *) scst_usage exit ${OCF_ERR_UNIMPLEMENTED} ;; esac # Log a debug message and exit rc=${?} ocf_log debug "${OCF_RESOURCE_INSTANCE} ${__OCF_ACTION} returned: ${rc}" exit ${rc}
ãã®ãã¡ã€ã«ã¯/usr/lib/ocf/resource.d/esos/scstãšããååã§é 眮ããå®è¡å¯èœã«ããå¿ èŠããããŸãã
2ã€ã®ããŒãã¯ã¯ã©ã¹ã¿ãŒã®å®å®æ§ã«ååã§ã¯ãªãããïŒæ¥ç¶ãåæããããšSplit-Brainã«ãªããŸãïŒãã¯ã©ãŒã©ã ãäœæããããªãœãŒã¹ãå®è¡ããªã3çªç®ã®ããŒãããããŸãã ããã¯ããªãœãŒã¹ã®ãå¥å šæ§ããã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ããŒãã§ãã§ãã¯ããããšããPacemakeræ©èœãäœçšããå Žæã§ãããã®ãªãœãŒã¹ãå®è¡ã§ãããã©ããã«é¢ä¿ãªãïŒæ°ããããŒãžã§ã³ã§ã¯ããã®æ©èœãç¡å¹ã«ããäœããã®æ©èœãè¿œå ãããŸããã Debianãªããžããªã«ã¯ãŸã ãã®ãããªå¹žçŠæã¯ãªãããã§ãïŒã ãããã£ãŠãã¯ã©ãŒã©ã ããŒãã®å Žåãããã°ãããã§ã¯ãã¹ãŠãèœã¡çããŠããããšåçŽã«èšãåœã®ãªãœãŒã¹ãå¿ èŠã§ãã
åœã®ãªãœãŒã¹
#! /bin/sh # # $Id$ # # Resource Agent for managing the Generic SCSI Target Subsystem # for Linux (SCST) and related daemons. # # License: GNU General Public License (GPL) # (c) 2012-2014 Marc A. Smith # # Initialization : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat} . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs MODULES="scst scst_vdisk qla2x00tgt" SCST_CFG="/etc/scst.conf" PRE_SCST_CONF="/etc/pre-scst_xtra_conf" POST_SCST_CONF="/etc/post-scst_xtra_conf" SCST_SYSFS="/sys/kernel/scst_tgt" ALUA_STATES="active nonoptimized standby unavailable offline transitioning" NO_CLOBBER="/tmp/scst_ra-no_clobber" scst_monitor() { return ${OCF_NOT_RUNNING} } scst_meta_data() { cat <<-EOF <?xml version="1.0"?> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> <resource-agent name="scst" version="0.1"> <version>0.1</version> <longdesc lang="en">The SCST OCF resource agent for ESOS; includes SCST ALUA support.</longdesc> <shortdesc lang="en">SCST OCF RA script for ESOS.</shortdesc> <parameters> <parameter name="alua" unique="0" required="0"> <longdesc lang="en">Use to enable/disable updating ALUA status in SCST.</longdesc> <shortdesc lang="en">The 'alua' parameter.</shortdesc> <content type="boolean" default="false" /> </parameter> <parameter name="device_group" unique="0" required="0"> <longdesc lang="en">The name of the SCST device group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'device_group' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="local_tgt_grp" unique="0" required="0"> <longdesc lang="en">The name of the SCST local target group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'local_tgt_grp' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="remote_tgt_grp" unique="0" required="0"> <longdesc lang="en">The name of the SCST remote target group (used with ALUA support).</longdesc> <shortdesc lang="en">The 'remote_tgt_grp' parameter.</shortdesc> <content type="string" default="" /> </parameter> <parameter name="m_alua_state" unique="0" required="0"> <longdesc lang="en">The ALUA state (eg, active) for a Master node (used with ALUA support).</longdesc> <shortdesc lang="en">The 'm_alua_state' parameter.</shortdesc> <content type="string" default="active" /> </parameter> <parameter name="s_alua_state" unique="0" required="0"> <longdesc lang="en">The ALUA state (eg, nonoptimized) for a Slave node (used with ALUA support).</longdesc> <shortdesc lang="en">The 's_alua_state' parameter.</shortdesc> <content type="string" default="nonoptimized" /> </parameter> </parameters> <actions> <action name="meta-data" timeout="5" /> <action name="start" timeout="120" /> <action name="stop" timeout="60" /> <action name="monitor" timeout="20" depth="0" interval="10" role="Master" /> <action name="monitor" timeout="20" depth="0" interval="20" role="Slave" /> <action name="notify" timeout="20" /> <action name="promote" timeout="20" /> <action name="demote" timeout="20" /> <action name="reload" timeout="20" /> <action name="validate-all" timeout="20" /> </actions> </resource-agent> EOF } scst_usage() { echo "usage: ${0} {start|stop|monitor|validate-all|promote|demote|reload|notify|meta-data}" echo "" echo "Expects to have a fully populated OCF RA-compliant environment set." } # Make sure meta-data and usage always succeed case ${__OCF_ACTION} in meta-data) scst_meta_data exit ${OCF_SUCCESS} ;; usage|help) scst_usage exit ${OCF_SUCCESS} ;; esac # Translate each action into the appropriate function call case ${__OCF_ACTION} in start) ;; stop) ;; status|monitor) scst_monitor ;; notify) ;; promote) ;; demote) ;; reload) ocf_log info "Reloading..." ;; validate-all) ;; migrate_to|migrate_from) scst_usage exit ${OCF_ERR_UNIMPLEMENTED} ;; *) scst_usage exit ${OCF_ERR_UNIMPLEMENTED} ;; esac # Log a debug message and exit rc=${?} ocf_log debug "${OCF_RESOURCE_INSTANCE} ${__OCF_ACTION} returned: ${rc}" exit ${rc}
ã¡ã€ã³ããŒããšåãæ¹æ³ã§ã¯ã©ãŒã©ã ããŒãã«é 眮ããŸãã
ãããã£ãŠãæåŸã«ã¢ã¬ã€ãäœæããSCSTãæ§æããŸãã
æåã®éšåã«ã€ããŠã¯ãããããååã§ãããã
ç§ãã¡ãæã£ãŠããããã€ã¹ãèŠãŠã¿ãŸãããïŒ
storcli64 / c0 / eall / sall show
Controller = 0 Status = Success Description = Show Drive Information Succeeded. Drive Information : ================= ------------------------------------------------------------------------- EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp ------------------------------------------------------------------------- 37:0 61 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:1 62 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:2 63 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:3 64 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:4 65 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:5 66 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:6 67 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:7 68 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:8 69 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:9 70 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:10 71 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:11 72 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:12 73 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:13 74 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:14 75 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:15 76 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:16 77 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:17 78 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:18 15 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:19 19 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:20 79 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:21 80 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:22 81 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 37:23 82 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:0 8 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:1 9 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:2 10 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:3 11 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:4 12 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:5 14 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:6 21 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:7 22 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:8 23 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:9 24 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:10 18 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:11 17 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:12 25 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:13 26 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:14 16 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:15 27 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:16 28 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:17 29 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:18 30 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:19 31 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:20 32 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:21 33 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:22 34 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U 59:23 35 UGood - 372.093 GB SAS SSD NN 512B S842E400M2 U -------------------------------------------------------------------------
ã€ãŸããåããã¯ãã¬ãŒã³ã«1ã€ãã€ã2ã€ã®RAID6ã¢ã¬ã€ïŒ23 + 1ãããã¹ãã¢ïŒãäœæããŸãã
# storcli /c0 add vd r6 name=SSD-RAID6-1 drives=37:0-22 WT nora direct Strip=64 # storcli /c0 add vd r6 name=SSD-RAID6-2 drives=59:0-22 WT nora direct Strip=64
ãããã¯ãSSDã®æšå¥šLSIãªãã·ã§ã³ã§ãã ç§ã®ãã¹ãããå€æãããšã8Kbãã128Kbã®ã¹ãã©ã€ãã®ãµã€ãºã¯ãäœæ¥ã®é床ã«ã»ãšãã©åœ±é¿ããŸããã
SCSTèšå®ïŒ/etc/scst.conf
ãµãŒããŒ-1ïŒã³ã¡ã³ãä»ãïŒ
# ## blockio Page Cache, SSD HANDLER vdisk_blockio { ## , SCST t10_dev_id usn ## ESXi LUN. DEVICE SSD-RAID6-1 { ## ( /dev/sdX) filename /dev/disk/by-id/scsi-3600605b008b4be401c91ac4abce21c9b ## write_through 1 ## SSD rotational 0 } DEVICE SSD-RAID6-2 { filename /dev/disk/by-id/scsi-3600605b008b4be401c91ac53bd668eda write_through 1 rotational 0 } } # TARGET_DRIVER qla2x00t { ## WWN , /sys/kernel/scst_tgt/targets/qla2x00t TARGET 21:00:00:24:ff:54:09:32 { HW_TARGET enabled 1 # ALUA (1-4 5-8 ) rel_tgt_id 1 ## LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:54:09:33 { HW_TARGET enabled 1 rel_tgt_id 2 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:54:09:80 { HW_TARGET enabled 1 rel_tgt_id 3 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:54:09:81 { HW_TARGET enabled 1 rel_tgt_id 4 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } } # ALUA, DEVICE_GROUP default { ## DEVICE SSD-RAID6-1 DEVICE SSD-RAID6-2 ## -1, TARGET_GROUP local { ## ID , group_id 256 ## ALUA state active ## -1 TARGET 21:00:00:24:ff:54:09:32 TARGET 21:00:00:24:ff:54:09:33 TARGET 21:00:00:24:ff:54:09:80 TARGET 21:00:00:24:ff:54:09:81 } ## -2 TARGET_GROUP remote { group_id 257 ## ALUA state nonoptimized ## -2 TARGET 21:00:00:24:ff:4a:af:b2 { rel_tgt_id 5 } TARGET 21:00:00:24:ff:4a:af:b3 { rel_tgt_id 6 } TARGET 21:00:00:24:ff:54:09:06 { rel_tgt_id 7 } TARGET 21:00:00:24:ff:54:09:07 { rel_tgt_id 8 } } }
ãµãŒããŒ2ïŒå¯Ÿç§°ïŒ
HANDLER vdisk_blockio { DEVICE SSD-RAID6-1 { filename /dev/disk/by-id/scsi-3600605b008b4be401c91ac4abce21c9b write_through 1 rotational 0 } DEVICE SSD-RAID6-2 { filename /dev/disk/by-id/scsi-3600605b008b4be401c91ac53bd668eda write_through 1 rotational 0 } } TARGET_DRIVER qla2x00t { TARGET 21:00:00:24:ff:4a:af:b2 { HW_TARGET enabled 1 rel_tgt_id 5 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:4a:af:b3 { HW_TARGET enabled 1 rel_tgt_id 6 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:54:09:06 { HW_TARGET enabled 1 rel_tgt_id 7 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } TARGET 21:00:00:24:ff:54:09:07 { HW_TARGET enabled 1 rel_tgt_id 8 LUN 0 SSD-RAID6-1 LUN 1 SSD-RAID6-2 } } DEVICE_GROUP default { DEVICE SSD-RAID6-1 DEVICE SSD-RAID6-2 TARGET_GROUP local { group_id 257 state nonoptimized TARGET 21:00:00:24:ff:4a:af:b2 TARGET 21:00:00:24:ff:4a:af:b3 TARGET 21:00:00:24:ff:54:09:06 TARGET 21:00:00:24:ff:54:09:07 } TARGET_GROUP remote { group_id 256 state active TARGET 21:00:00:24:ff:54:09:32 { rel_tgt_id 1 } TARGET 21:00:00:24:ff:54:09:33 { rel_tgt_id 2 } TARGET 21:00:00:24:ff:54:09:80 { rel_tgt_id 3 } TARGET 21:00:00:24:ff:54:09:81 { rel_tgt_id 4 } } }
æåã®éšåã«ã€ããŠã¯ããã¹ãŠã§ååã ãšæããŸãã ç§ã¯2çªç®ããã¹ã¿ãŒããããšãé¡ã£ãŠããŸã:)