ºìÁªLinuxÃÅ»§
Linux°ïÖú

¹úÄÚÆóÒµÐû³ÆÑз¢³ö¡°²»»áÒÅÍü¡±µÄNVDIMM³¬¼¶ÄÚ´æ

·¢²¼Ê±¼ä:2014-05-20 08:46:50À´Ô´:ºìÁª×÷Õß:Denterp
À´Ô´£ºcnbeta

NVDIMMÓÉBBU(Battery BackedUp) DIMMÑÝ±ä¶øÀ´¡£BBU²ÉÓÃºó±¸µç³ØÒÔά³ÖÆÕͨ»Ó·¢ÐÔÄÚ´æÖеÄÄÚÈݼ¸Ð¡Ê±Ö®¾Ã¡£µ«ÊÇ£¬µç³Øº¬ÓÐÖØ½ðÊô£¬·ÏÆú´¦ÖúͶԻ·¾³µÄÎÛȾ£¬²»·ûºÏÂÌÉ«ÄÜÔ´µÄÒªÇó¡£Óɳ¬¼¶µçÈÝ×÷Ϊ¶¯Á¦Ô´µÄNVDIMMÓ¦Ô˶øÉú¡£²¢ÇÒNVDIMMʹÓ÷ǻӷ¢ÐÔµÄflash´æ´¢½éÖÊÀ´±£´æÊý¾Ý£¬Êý¾ÝÄܹ»±£´æµÄʱ¼ä¸ü³¤¡£

ÓɹúÄÚ´´ÐÂÐÔÆóÒµÎÞÎýÔÆ¶¯¿Æ¼¼¿ª·¢µÄÐÂÒ»´ú·ÇÒ×ʧÐÔÄڴ棺NVDIMM¡£¿ÉÖ±½Ó×÷ΪÖ÷´æ»òÕßDAS,SANµÄÓÀ¾ÃÐÔ»º´æÉ豸¡£±¾ÊÓÆµÌṩµÄȫϵͳ±£»¤ÑÝʾÊÇNVDIMMµÄϵͳÖ÷´æµÄ½Ü³ö·¶Àý¡£

Ó¦ÓÃ

1. Êý¾Ý±£»¤

¼ÆËã»úϵͳµÄ¼ÆËã½á¹ûºÍ·þÎñÐÅÏ¢½ÔÁÙʱ±£´æÔÚÄÚ´æÖУ¬ÕâЩÊý¾ÝÔÚϵͳµôµçºó½«¶ªÊ§£¬ÉõÖÁÄÜÒýÆðÕû¸öϵͳµÄ±ÀÀ£¡£NVDIMM¿ÉÒÔ½â¾öϵͳÒì³£µôµçÇé¿öÏ£¬ÄÚ´æÊý¾ÝµÄ±£´æ¹¤×÷£¬²¢ÇÒÄܹ»ÔÚϵͳ»Ö¸´Õý³£ÔËÐк󣬼ÌÐøÖ®Ç°µÄ¹¤×÷¡£

ȫϵͳ±£»¤ÊÇNVDIMMµÄÒ»¸öµäÐÍÓ¦Óó¡¾°¡£ÔÚϵͳÒì³£µôµçºó£¬¸ÃϵͳÄÜÔÚ¶Ìʱ¼äÄÚ½«Õû¸ö¼ÆËã»úϵͳµ±Ç°µÄ¹¤×÷״̬£¨°üÀ¨CPU,ÇŽÓоƬ£¬Íø¿¨µÈÓ²¼þÉ豸ÒÔ¼°ÏµÍ³ÖÐËùÓеĽø³Ì£©±£´æÖÁNVDIMM¡£ÔÚÏµÍ³ÖØÐÂÉϵçÔËÐкó£¬Á¢¼´»Ö¸´ÖÁ֮ǰµÄÔËÐÐ״̬£¬·Â·ðϵͳֻÊÇ¡°´òÁ˸öí¡£ÎÞÎýÔÆ¶¯¿Æ¼¼¿ª·¢µÄ»ùÓÚNVDIMMµÄÎ⹳ƽ̨ÊÇÊÀ½çÉϵÚÒ»¸öÍÆ³öȫϵͳ±£»¤·½°¸²¢ÇÒÍê³ÉÑù»úÑÝʾµÄNVDIMM²úÆ·¡£

ÔÚÔÆ¼¼Êõ·¢Õ¹ÈÕÐÂÔÂÒìµÄ½ñÌ죬ÐéÄ⻯¼¼Êõ×÷ÎªÔÆµÄºËÐļ¼Êõ£¬µÃµ½Á˹㷺µÄ¹Ø×¢Ó봴С£Óë´Ëͬʱ£¬×÷ÎªÔÆ·þÎñÔËÐеĵײãÔØÌ壬ÐéÄâ»úµÄÊý¾Ý°²È«ÓëÍêÕûÊÇĿǰ¼±Ðè½â¾öµÄÖØÒª¿ÎÌâ¡£ÐéÄâ»úʵÖÊΪÈí¼þÄ£ÄâµÄ¾ßÓÐÍêÕûÓ²¼þϵͳ¹¦Äܵġ¢ÔËÐÐÔÚÒ»¸öÍêÈ«¸ôÀë»·¾³ÖеÄÍêÕû¼ÆËã»úϵͳ£¬Ò²¾ÍÒâζ×ÅÐéÄâ»úµÄËùÓÐÔËÐÐ״̬¶¼ÔÚÄÚ´æÖС£NVDIMM¿ÉÒÔÀûÓÃÐéÄâ»ú±¾ÉíµÄ¿ìÕÕ¹¦ÄÜ£¬ÔÚϵͳÒì³£Çé¿öÏ£¬Ñ¸ËÙ±£»¤´æ´¢ÔÚÄÚ´æÖеÄÁÙʱ¿ìÕÕ£¬´ïµ½±£»¤Õû¸öÐéÄâ»úµÄÄ¿µÄ¡£

2. ´ÅÅÌ»º´æ

´ÅÅÌ»º´æÊÇΪÁ˼õÉÙCPU͸¹ýI/O¶Áд´ÅÅ̵ĴÎÊý£¬ÌáÉý´ÅÅÌI/OµÄЧÂÊ£¬ÓÃÒ»²¿·ÖÄÚ´æÀ´´¢´æ·ÃÎÊ½ÏÆµ·±µÄ´ÅÅÌÄÚÈÝ¡£´ÅÅÌ»º´æµÄ´æÔÚ¶ÔÓÚÊý¾Ý·ÃÎʵÄÒ»ÖÂÐÔ´øÀ´ÁËÎÊÌ⣬ÓÈÆäÊDzÉÓÃwrite-back²ßÂÔµÄд»º´æµ¼ÖÂÒì³£µôµçÇé¿öÏÂÄÚ´æÖиüеÄÊý¾ÝδÄܼ°Ê±Ð´Èë´ÅÅ̶ø¶ªÊ§¡£NVDIMMÊÇд»º´æµÄ×î¼Ñ´æ´¢½éÖÊ¡£ËüµÄËæ»ú·ÃÎÊÐÔÖÊÄÜÈÃCPUºÍ²Ù×÷ϵͳֱ½Ó·ÃÎʹÜÀí£¬²¢ÇÒ·ÇÒ×ʧÐÔ±£Ö¤Êý¾ÝÔÚÒì³£µôµçÇé¿öϵÃÒÔ±£»¤¡£

Ŀǰ£¬Õë¶ÔRAID¿ØÖÆÆ÷µÄд»º´æNVDIMMÒÑÖð½¥±»½ÓÊÜ¡£¶ÔÓÚ´øÓа弶RAID¿ØÖÆÐ¾Æ¬»òÕß²ÉÓÃÈí¼þRAID·½°¸µÄ¼ÆËã»ú£¬È±·¦Ð´»º´æ£¬NVDIMM¿ÉÒÔÖ±½ÓÓÃ×öϵͳÖ÷´æ£¬ÅäºÏ²Ù×÷ϵͳ£¬Íê³Éд»º´æÈÎÎñ¡£»¹ÓÐÒ»ÀàPCIE½Ó¿ÚµÄRAID¿ØÖÆ¿¨£¬ËüÃDzÉÓÃÆÕͨµÄ´øµç³Øºó±¸µÄÄÚ´æÌõ×÷Ϊ»º´æÊ¹Óã¬NVDIMM¿ÉÒÔÖ±½ÓÌæ´úÕâЩÄÚ´æÌõ¡£

3. ´æ´¢Á´

´æ´¢Á´Êǽ«Õû¸ö´æ´¢ÏµÍ³ÖеÄÊý¾Ý°´ÕÕ°²È«¶È£¬ÐÔÄÜÒªÇóÒÔ¼°Ê¹ÓÃÆµÂÊ·Ö²ã´æ´¢ÔÚ²»Í¬µÄ·ÇÒ×ʧ´æ´¢½éÖÊÖС£

ÈçͼËùʾΪһµäÐ͵Ĵ洢Á´ÊµÀý¡£IOÐÔÄÜÒªÇó½Ï¸ßµÄÊý¾Ý±»´æ´¢ÔÚSSDÉÏ£¬¶øÒªÇó½ÏµÍµÄÊý¾Ý·ÅÈë¸÷ÖÖÀàÐ͵ĴÅÅÌÕóÁÐÒÔ¼°NAS¡£NVDIMM¿É×÷Ϊ´æ´¢Á´µÄ×îǰ¶Ë£¬ËüµÄËٶȱÈSSD¸ü¿ì£¬²¢ÇÒÄܹ»Ìṩֱ½ÓËæ»ú·ÃÎʵÄÌØÐÔ¡£CPUµÄÄÚ´æÕ¤ÕÏÓëË¢ÐÂcacheÖ¸ÁîÄܹ»±£Ö¤NVDIMMÊý¾ÝµÄÔ­×ÓдÓëÒ»ÖÂÐÔ¡£ËùÒÔ£¬NVDIMM·Ç³£ÊʺÏÓÃ×÷Îļþϵͳ»òÕßÊý¾Ý¿âÔªÊý¾ÝÓëÈÕÖ¾µÄ´æ´¢½éÖÊ¡£

Ïà¹Ø¼¼Êõ·¢Õ¹

Intel CPUÖ§³Ö

Intel¼´½«ÍƳöµÄHaswell-ECPU¿ªÊ¼Ö§³Ö288pinµÄDDR4ÄÚ´æÌõ¡£ÔÚJEDEC ×îеÄDDR4¹æ·¶ÖУ¬ÓÐ4¸öpinΪNVDIMMµÄµçÔ´Óë¿ØÖÆÐźš£¿É¼ûÖ÷Á÷CPUÓëÖ÷°åÒѾ­¿ªÊ¼½«NVDIMM¼ÓÈëÉÌÒµ»¯µÄ´æ´¢ÏµÍ³¡£¹úÄڵļÒÓûúÖ÷°å³§ÉÌ΢ÐÇ£¬¼¼¼Î¶¼ÒѾ­¿ªÊ¼ÖÆ×÷Haswell-Eƽ̨µÄÖ÷°å£¬Ô¤¼Æ2014ÄêÖÐÑ®¼´½«ÉÏÊС£

Òì²½DRAM×ÔË¢ÐÂ(ADR)¼¼ÊõÊÇIntelÔÚÁ趯S12X9¼Ò×å´¦ÀíÆ÷ÉÏÍ˳öµÄм¼Êõ£¬¿É±£Ö¤ÔÚÒì³£µôµçʱ£¬CPU³åË¢cache£¬Ð´»ØcacheµÄÔàÊý¾Ý£¬È»ºó½«DRAMÉèÖýøÈë×ÔË¢ÐÂ״̬¡£NVDIMM¾ÍÊÇÔÚDRAM´¦ÓÚ×ÔË¢ÐÂ״̬ʱ½«¿ØÖÆÈ¨ÓÉCPUÒÆ½»¸øNVDIMM±¾Éí£¬ADR¼¼Êõ¾ÍÊÇΪNVDIMMÁ¿Éí¶¨ÖÆ¡£ÁíÍ⣬ADR¼¼ÊõÄܹ»ÓÐÑ¡ÔñµÄÔÚ¼ÆËã»úÈÈÆô¶¯Ê±£¬²»¶ÔÌØ¶¨Í¨µÀµÄDRAM½øÐÐÖØÐ³õʼ»¯£¬´Ó¶ø±£ÁôDRAMÖеÄÊý¾Ý¡£°üÀ¨MacroSAN¡¢Dahua¡¢Accusys¡¢QsanºÍQnapµÈÊý¾ÝÖÐÐÄÖÆÔìÉÌÒѾ­Ðû²¼¿ªÊ¼Ö§³ÖS12X9´¦ÀíÆ÷¼Ò×å¡£

SNIA NVM Express

SNIAÔÚ2013Äêµ×Ïà¼Ì·¢±íµÄNVM(Non-volatilememory)µÄÓ²¼þ½Ó¿Ú¹æ·¶ºÍ±à³ÌÄ£Ð͹淶¡£¶¨ÒåÁËNVMµÄ·¶Î§ÎªPCIE½Ó¿ÚµÄflash´æ´¢Æ÷£¬¿ØÖÆ¿¨ÒÔ¼°NVDIMM£¬PCMµÈ¿ÉÒÔËæ»ú·ÃÎʵķÇÒ×ʧÐÔ´æ´¢Æ÷¡£SNIA Ìá³öÁËblockvolumeºÍpersistent memoryÁ½ÖÖÄ£ÐÍ£¬²¢¸ø³öÁËÿÖÖÄ£ÐÍÄܹ»´¦ÀíµÄÃüÁÒÔ¼°ÄÜÍê³ÉµÄ¹¦ÄÜ¡£Block volume¼´´«Í³µÄ¿éÉ豸ģÐÍ£¬ÒÔ¿éΪµ¥Î»½øÐÐÊý¾Ý´«Ê䣬²ÉÓÃÓëÏÖÓеÄATA,SCSI,FCµÈЭÒé¾ßÓÐÏàͬµÄ±à³Ì·½Ê½£¬±ÈÈçPCIE SSD,PCIE RAID controller¾ÍÊÇ´ËÀàÄ£ÐÍ¡£PersistentmemoryÊǾßÓÐÖ±½ÓËæ»ú·ÃÎÊÓë·ÇÒ×ʧÐÔË«ÖØÌØÐԵıà³ÌÄ£ÐÍ£¬¿ÉÒÔ²ÉÓô«Í³ÐéÄâÄÚ´æ¹ÜÀí½Ó¿Ú£¬ÎªÎļþϵͳ»òÕßÊý¾Ý¿âÌṩеĴ洢ÐÐΪ¡£NVDIMM¼´²ÉÓôËÀà±à³ÌÄ£ÐÍ£¬Í¬ÑùPCIE¿¨Èç¹û½«Æä´æ´¢¿Õ¼äÓ³ÉäÖÁPCIE´æ´¢Óò£¬²¢ÇÒÄܹ»ÆÁ±Îµ×²ãµÄflashÌØÐÔ£¬ÒàÄܲÉÓôËÀàÄ£ÐÍ¡£

Linux kernel

²Ù×÷ϵͳ·½Ã棬Ric Wheeler ÔÚ2013 Linux Foundation Collaboration SummitÌá³öÁËÔÚLinuxϵͳÖÐÖ§³ÖNVMµÄÏë·¨£¬²¢ÇÒSNIA×éÖ¯Ò²ÒѾ­¸ø³öÁËNVMeÉ豸µÄLinuxÇý¶¯¡£ÔÚRicµÄÌÖÂÛÖУ¬ÔÚ¼æÈÝÀÏʽ±à³ÌÄ£Ð͵ÄAPIµÄ»ù´¡ÉÏ£¬¶¨ÒåеÄÊʺÏNVMÉ豸µÄAPI£¬ÈÃÎļþϵͳºÍÊý¾Ý¿â¶¼ÄܸüºÃµØÀûÓÃNVMµÄÌØÐÔ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ