1. GlusterFS¸ÅÊö
GlusterFSÊÇScale-Out´æ´¢½â¾ö·½°¸GlusterµÄºËÐÄ£¬ËüÊÇÒ»¸ö¿ªÔ´µÄ·Ö²¼Ê½Îļþϵͳ£¬¾ßÓÐÇ¿´óµÄºáÏòÀ©Õ¹ÄÜÁ¦£¬Í¨¹ýÀ©Õ¹Äܹ»Ö§³ÖÊýPB´æ´¢ÈÝÁ¿ºÍ´¦ÀíÊýǧ¿Í»§¶Ë¡£GlusterFS½èÖúTCP/IP»òInfiniBand RDMAÍøÂ罫ÎïÀí·Ö²¼µÄ´æ´¢×ÊÔ´¾Û¼¯ÔÚÒ»Æð£¬Ê¹Óõ¥Ò»È«¾ÖÃüÃû¿Õ¼äÀ´¹ÜÀíÊý¾Ý¡£GlusterFS»ùÓڿɶѵþµÄÓû§¿Õ¼äÉè¼Æ£¬¿ÉΪ¸÷ÖÖ²»Í¬µÄÊý¾Ý¸ºÔØÌṩÓÅÒìµÄÐÔÄÜ¡£

ͼ1 GlusterFSͳһµÄ¹ÒÔØµã
GlusterFSÖ§³ÖÔËÐÐÔÚÈκαê×¼IPÍøÂçÉϱê×¼Ó¦ÓóÌÐòµÄ±ê×¼¿Í»§¶Ë£¬Èçͼ2Ëùʾ£¬Óû§¿ÉÒÔÔÚÈ«¾ÖͳһµÄÃüÃû¿Õ¼äÖÐʹÓÃNFS/CIFSµÈ±ê×¼ÐÒéÀ´·ÃÎÊÓ¦ÓÃÊý¾Ý¡£GlusterFSʹµÃÓû§¿É°ÚÍÑÔÓеĶÀÁ¢¡¢¸ß³É±¾µÄ·â±Õ´æ´¢ÏµÍ³£¬Äܹ»ÀûÓÃÆÕͨÁ®¼ÛµÄ´æ´¢É豸À´²¿Êð¿É¼¯ÖйÜÀí¡¢ºáÏòÀ©Õ¹¡¢ÐéÄ⻯µÄ´æ´¢³Ø£¬´æ´¢ÈÝÁ¿¿ÉÀ©Õ¹ÖÁTB/PB¼¶¡£GlusterFSÖ÷ÒªÌØÕ÷ÈçÏ£º
l À©Õ¹ÐԺ͸ßÐÔÄÜ
GlusterFSÀûÓÃË«ÖØÌØÐÔÀ´Ìṩ¼¸TBÖÁÊýPBµÄ¸ßÀ©Õ¹´æ´¢½â¾ö·½°¸¡£Scale-Out¼Ü¹¹ÔÊÐíͨ¹ý¼òµ¥µØÔö¼Ó×ÊÔ´À´Ìá¸ß´æ´¢ÈÝÁ¿ºÍÐÔÄÜ£¬´ÅÅÌ¡¢¼ÆËãºÍI/O×ÊÔ´¶¼¿ÉÒÔ¶ÀÁ¢Ôö¼Ó£¬Ö§³Ö10GbEºÍInfiniBandµÈ¸ßËÙÍøÂ绥Áª¡£Glusterµ¯ÐÔ¹þÏ££¨Elastic Hash£©½â³ýÁËGlusterFS¶ÔÔªÊý¾Ý·þÎñÆ÷µÄÐèÇó£¬Ïû³ýÁ˵¥µã¹ÊÕϺÍÐÔÄÜÆ¿¾±£¬ÕæÕýʵÏÖÁ˲¢Ðл¯Êý¾Ý·ÃÎÊ¡£
l ¸ß¿ÉÓÃÐÔ
GlusterFS¿ÉÒÔ¶ÔÎļþ½øÐÐ×Ô¶¯¸´ÖÆ£¬Èç¾µÏñ»ò¶à´Î¸´ÖÆ£¬´Ó¶øÈ·±£Êý¾Ý×ÜÊÇ¿ÉÒÔ·ÃÎÊ£¬ÉõÖÁÊÇÔÚÓ²¼þ¹ÊÕϵÄÇé¿öÏÂÒ²ÄÜÕý³£·ÃÎÊ¡£×ÔÎÒÐÞ¸´¹¦ÄÜÄܹ»°ÑÊý¾Ý»Ö¸´µ½ÕýÈ·µÄ״̬£¬¶øÇÒÐÞ¸´ÊÇÒÔÔöÁ¿µÄ·½Ê½ÔÚºǫִ́ÐУ¬¼¸ºõ²»»á²úÉúÐÔÄܸºÔØ¡£GlusterFSûÓÐÉè¼Æ×Ô¼ºµÄ˽ÓÐÊý¾ÝÎļþ¸ñʽ£¬¶øÊDzÉÓòÙ×÷ϵͳÖÐÖ÷Á÷±ê×¼µÄ´ÅÅÌÎļþϵͳ£¨ÈçEXT3¡¢ZFS£©À´´æ´¢Îļþ£¬Òò´ËÊý¾Ý¿ÉÒÔʹÓø÷ÖÖ±ê×¼¹¤¾ß½øÐи´ÖƺͷÃÎÊ¡£
l È«¾ÖͳһÃüÃû¿Õ¼ä
È«¾ÖͳһÃüÃû¿Õ¼ä½«´ÅÅ̺ÍÄÚ´æ×ÊÔ´¾Û¼¯³ÉÒ»¸öµ¥Ò»µÄÐéÄâ´æ´¢³Ø£¬¶ÔÉϲãÓû§ºÍÓ¦ÓÃÆÁ±ÎÁ˵ײãµÄÎïÀíÓ²¼þ¡£´æ´¢×ÊÔ´¿ÉÒÔ¸ù¾ÝÐèÒªÔÚÐéÄâ´æ´¢³ØÖнøÐе¯ÐÔÀ©Õ¹£¬±ÈÈçÀ©ÈÝ»òÊÕËõ¡£µ±´æ´¢ÐéÄâ»úÓ³Ïñʱ£¬´æ´¢µÄÐéÄâÓ³ÏñÎļþûÓÐÊýÁ¿ÏÞÖÆ£¬³ÉǧÐéÄâ»ú¾ùͨ¹ýµ¥Ò»¹ÒÔØµã½øÐÐÊý¾Ý¹²Ïí¡£ÐéÄâ»úI/O¿ÉÔÚÃüÃû¿Õ¼äÄÚµÄËùÓзþÎñÆ÷ÉÏ×Ô¶¯½øÐиºÔؾùºâ£¬Ïû³ýÁËSAN»·¾³Öо³£·¢ÉúµÄ·ÃÎÊÈȵãºÍÐÔÄÜÆ¿¾±ÎÊÌâ¡£
l µ¯ÐÔ¹þÏ£Ëã·¨
GlusterFS²ÉÓõ¯ÐÔ¹þÏ£Ëã·¨ÔÚ´æ´¢³ØÖж¨Î»Êý¾Ý£¬¶ø²»ÊDzÉÓü¯ÖÐʽ»ò·Ö²¼Ê½ÔªÊý¾Ý·þÎñÆ÷Ë÷Òý¡£ÔÚÆäËûµÄScale-Out´æ´¢ÏµÍ³ÖУ¬ÔªÊý¾Ý·þÎñÆ÷ͨ³£»áµ¼ÖÂI/OÐÔÄÜÆ¿¾±ºÍµ¥µã¹ÊÕÏÎÊÌâ¡£GlusterFSÖУ¬ËùÓÐÔÚScale-Out´æ´¢ÅäÖÃÖеĴ洢ϵͳ¶¼¿ÉÒÔÖÇÄܵض¨Î»ÈÎÒâÊý¾Ý·ÖƬ£¬²»ÐèÒª²é¿´Ë÷Òý»òÕßÏòÆäËû·þÎñÆ÷²éѯ¡£ÕâÖÖÉè¼Æ»úÖÆÍêÈ«²¢Ðл¯ÁËÊý¾Ý·ÃÎÊ£¬ÊµÏÖÁËÕæÕýµÄÏßÐÔÐÔÄÜÀ©Õ¹¡£
l µ¯ÐÔ¾í¹ÜÀí
Êý¾Ý´¢´æÔÚÂß¼¾íÖУ¬Âß¼¾í¿ÉÒÔ´ÓÐéÄ⻯µÄÎïÀí´æ´¢³Ø½øÐжÀÁ¢Âß¼»®·Ö¶øµÃµ½¡£´æ´¢·þÎñÆ÷¿ÉÒÔÔÚÏß½øÐÐÔö¼ÓºÍÒÆ³ý£¬²»»áµ¼ÖÂÓ¦ÓÃÖжϡ£Âß¼¾í¿ÉÒÔÔÚËùÓÐÅäÖ÷þÎñÆ÷ÖÐÔö³¤ºÍËõ¼õ£¬¿ÉÒÔÔÚ²»Í¬·þÎñÆ÷Ç¨ÒÆ½øÐÐÈÝÁ¿¾ùºâ£¬»òÕßÔö¼ÓºÍÒÆ³ýϵͳ£¬ÕâЩ²Ù×÷¶¼¿ÉÔÚÏß½øÐС£ÎļþϵͳÅäÖøü¸ÄÒ²¿ÉÒÔʵʱÔÚÏß½øÐв¢Ó¦Ó㬴Ӷø¿ÉÒÔÊÊÓ¦¹¤×÷¸ºÔØÌõ¼þ±ä»¯»òÔÚÏßÐÔÄܵ÷ÓÅ¡£
l »ùÓÚ±ê×¼ÐÒé
Gluster´æ´¢·þÎñÖ§³ÖNFS, CIFS, HTTP, FTPÒÔ¼°GlusterÔÉúÐÒ飬ÍêÈ«ÓëPOSIX±ê×¼¼æÈÝ¡£ÏÖÓÐÓ¦ÓóÌÐò²»ÐèÒª×÷ÈκÎÐ޸ĻòʹÓÃרÓÃAPI£¬¾Í¿ÉÒÔ¶ÔGlusterÖеÄÊý¾Ý½øÐзÃÎÊ¡£ÕâÔÚ¹«ÓÐÔÆ»·¾³Öв¿ÊðGlusterʱ·Ç³£ÓÐÓã¬Gluster¶ÔÔÆ·þÎñÌṩÉÌרÓÃAPI½øÐгéÏó£¬È»ºóÌṩ±ê×¼POSIX½Ó¿Ú¡£
2. Éè¼ÆÄ¿±ê
GlusterFSµÄÉè¼ÆË¼ÏëÏÔÖøÇø±ðÓÐÏÖÓв¢ÐÐ/¼¯Èº/·Ö²¼Ê½Îļþϵͳ¡£Èç¹ûGlusterFSÔÚÉè¼ÆÉÏûÓб¾ÖÊÐÔµÄÍ»ÆÆ£¬ÄÑÒÔÔÚÓëLustre¡¢PVFS2¡¢CephµÈµÄ¾ºÕùÖÐÕ¼¾ÝÓÅÊÆ£¬¸ü±ðÌáÓëGPFS¡¢StorNext¡¢ISILON¡¢IBRIXµÈ¾ßÓжàÄê¼¼Êõ³ÁµíºÍÊг¡»ýÀÛµÄÉÌÓÃÎļþϵͳ¾ºÕù¡£ÆäºËÐÄÉè¼ÆÄ¿±ê°üÀ¨ÈçÏÂÈý¸ö£º
l µ¯ÐԴ洢ϵͳ£¨Elasticity£©
´æ´¢ÏµÍ³¾ßÓе¯ÐÔÄÜÁ¦£¬Òâζ×ÅÆóÒµ¿ÉÒÔ¸ù¾ÝÒµÎñÐèÒªÁé»îµØÔö¼Ó»òËõ¼õÊý¾Ý´æ´¢ÒÔ¼°Ôöɾ´æ´¢³ØÖеÄ×ÊÔ´£¬¶ø²»ÐèÒªÖжÏϵͳÔËÐС£GlusterFSÉè¼ÆÄ¿±êÖ®Ò»¾ÍÊǵ¯ÐÔ£¬ÔÊÐí¶¯Ì¬ÔöɾÊý¾Ý¾í¡¢À©Õ¹»òËõ¼õÊý¾Ý¾í¡¢Ôöɾ´æ´¢·þÎñÆ÷µÈ£¬²»Ó°ÏìϵͳÕý³£ÔËÐкÍÒµÎñ·þÎñ¡£GlusterFSÔçÆÚ°æ±¾Öе¯ÐÔ²»×㣬²¿·Ö¹ÜÀí¹¤×÷ÐèÒªÖжϷþÎñ£¬Ä¿Ç°×îеÄ3.1.X°æ±¾ÒѾµ¯ÐÔÊ®×㣬Äܹ»Âú×ã¶Ô´æ´¢ÏµÍ³µ¯ÐÔÒªÇó¸ßµÄÓ¦ÓÃÐèÇó£¬ÓÈÆäÊǶÔÔÆ´æ´¢·þÎñϵͳ¶øÑÔÒâÒå¸ü´ó¡£GlusterFSÖ÷Ҫͨ¹ý´æ´¢ÐéÄ⻯¼¼ÊõºÍÂß¼¾í¹ÜÀíÀ´ÊµÏÖÕâÒ»Éè¼ÆÄ¿±ê¡£
l ÏßÐÔºáÏòÀ©Õ¹£¨Linear Scale-Out£©
ÏßÐÔÀ©Õ¹¶ÔÓڴ洢ϵͳ¶øÑÔÊǷdz£ÄÑÒÔʵÏֵģ¬Í¨³£ÏµÍ³¹æÄ£À©Õ¹ÓëÐÔÄÜÌáÉýÖ®¼äÊÇLOG¶ÔÊýÇúÏß¹ØÏµ£¬ÒòΪͬʱ»á²úÉúÏàÓ¦¸ºÔضøÏûºÄÁ˲¿·ÖÐÔÄܵÄÌáÉý¡£ÏÖÔڵĺܶಢÐÐ/¼¯Èº/·Ö²¼Ê½Îļþϵͳ¶¼¾ßºÜ¸ßµÄÀ©Õ¹ÄÜÁ¦£¬Luster´æ´¢½Úµã¿ÉÒÔ´ïµ½1000¸öÒÔÉÏ£¬¿Í»§¶ËÊýÁ¿Äܹ»´ïµ½25000ÒÔÉÏ£¬Õâ¸öÀ©Õ¹ÄÜÁ¦ÊǷdz£Ç¿´óµÄ£¬µ«ÊÇLustreÒ²²»ÊÇÏßÐÔÀ©Õ¹µÄ¡£
×ÝÏòÀ©Õ¹£¨Scale-Up£©Ö¼ÔÚÌá¸ßµ¥¸ö½ÚµãµÄ´æ´¢ÈÝÁ¿»òÐÔÄÜ£¬ÍùÍù´æÔÚÀíÂÛÉÏ»òÎïÀíÉϵĸ÷ÖÖÏÞÖÆ£¬¶øÎÞ·¨Âú×ã´æ´¢ÐèÇ󡣺áÏòÀ©Õ¹£¨Scale-Out£©Í¨¹ýÔö¼Ó´æ´¢½ÚµãÀ´ÌáÉýÕû¸öϵͳµÄÈÝÁ¿»òÐÔÄÜ£¬ÕâÒ»À©Õ¹»úÖÆÊÇĿǰµÄ´æ´¢¼¼ÊõÈȵ㣬ÄÜÓÐЧӦ¶ÔÈÝÁ¿¡¢ÐÔÄܵȴ洢ÐèÇó¡£Ä¿Ç°µÄ²¢ÐÐ/¼¯Èº/·Ö²¼Ê½Îļþϵͳ´ó¶à¶¼¾ß±¸ºáÏòÀ©Õ¹ÄÜÁ¦¡£
GlusterFSÊÇÏßÐÔºáÏòÀ©Õ¹¼Ü¹¹£¬Ëüͨ¹ýºáÏòÀ©Õ¹´æ´¢½Úµã¼´¿ÉÒÔ»ñµÃÏßÐԵĴ洢ÈÝÁ¿ºÍÐÔÄܵÄÌáÉý¡£Òò´Ë£¬½áºÏ×ÝÏòÀ©Õ¹GlusterFS¿ÉÒÔ»ñµÃ¶àάÀ©Õ¹ÄÜÁ¦£¬Ôö¼Óÿ¸ö½ÚµãµÄ´ÅÅÌ¿ÉÔö¼Ó´æ´¢ÈÝÁ¿£¬Ôö¼Ó´æ´¢½Úµã¿ÉÒÔÌá¸ßÐÔÄÜ£¬´Ó¶ø½«¸ü¶à´ÅÅÌ¡¢ÄÚ´æ¡¢I/O×ÊÔ´¾Û¼¯³É¸ü´óÈÝÁ¿¡¢¸ü¸ßÐÔÄܵÄÐéÄâ´æ´¢³Ø¡£GlusterFSÀûÓÃÈýÖÖ»ù±¾¼¼ÊõÀ´»ñµÃÏßÐÔºáÏòÀ©Õ¹ÄÜÁ¦£º
1) Ïû³ýÔªÊý¾Ý·þÎñ
2) ¸ßЧÊý¾Ý·Ö²¼£¬»ñµÃÀ©Õ¹ÐԺͿɿ¿ÐÔ
3) ͨ¹ýÍêÈ«·Ö²¼Ê½¼Ü¹¹µÄ²¢Ðл¯»ñµÃÐÔÄܵÄ×î´ó»¯
l ¸ß¿É¿¿ÐÔ£¨Reliability£©
ÓëGFS£¨Google File System£©ÀàËÆ£¬GlusterFS¿ÉÒÔ¹¹½¨ÔÚÆÕͨµÄ·þÎñÆ÷ºÍ´æ´¢É豸֮ÉÏ£¬Òò´Ë¿É¿¿ÐÔÏÔµÃÓÈΪ¹Ø¼ü¡£GlusterFS´ÓÉè¼ÆÖ®³õ¾Í½«¿É¿¿ÐÔÄÉÈëºËÐÄÉè¼Æ£¬²ÉÓÃÁ˶àÖÖ¼¼ÊõÀ´ÊµÏÖÕâÒ»Éè¼ÆÄ¿±ê¡£Ê×ÏÈ£¬Ëü¼ÙÉè¹ÊÕÏÊÇÕý³£Ê¼þ£¬°üÀ¨Ó²¼þ¡¢´ÅÅÌ¡¢ÍøÂç¹ÊÕÏÒÔ¼°¹ÜÀíÔ±Îó²Ù×÷Ôì³ÉµÄÊý¾ÝË𻵵ȡ£GlusterFSÉè¼ÆÖ§³Ö×Ô¶¯¸´ÖƺÍ×Ô¶¯ÐÞ¸´¹¦ÄÜÀ´±£Ö¤Êý¾Ý¿É¿¿ÐÔ£¬²»ÐèÒª¹ÜÀíÔ±µÄ¸ÉÔ¤¡£Æä´Î£¬GlusterFSÀûÓÃÁ˵ײãEXT3/ZFSµÈ´ÅÅÌÎļþϵͳµÄÈÕÖ¾¹¦ÄÜÀ´Ìṩһ¶¨µÄÊý¾Ý¿É¿¿ÐÔ£¬¶øÃ»ÓÐ×Ô¼ºÖØÐ·¢Ã÷ÂÖ×Ó¡£ÔٴΣ¬GlusterFSÊÇÎÞÔªÊý¾Ý·þÎñÆ÷Éè¼Æ£¬²»ÐèÒªÔªÊý¾ÝµÄͬ²½»òÕßÒ»ÖÂÐÔά»¤£¬ºÜ´ó³Ì¶ÈÉϽµµÍÁËϵͳ¸´ÔÓÐÔ£¬²»½öÌá¸ßÁËÐÔÄÜ£¬»¹´ó´óÌá¸ßÁËϵͳ¿É¿¿ÐÔ¡£
3. ¼¼ÊõÌØµã
GlusterFSÔÚ¼¼ÊõʵÏÖÉÏÓ봫ͳ´æ´¢ÏµÍ³»òÏÖÓÐÆäËû·Ö²¼Ê½ÎļþϵͳÓÐÏÔÖø²»Í¬Ö®´¦£¬Ö÷ÒªÌåÏÖÔÚÈçϼ¸¸ö·½Ãæ¡£
l ÍêÈ«Èí¼þʵÏÖ£¨Software Only£©
GlusterFSÈÏΪ´æ´¢ÊÇÈí¼þÎÊÌ⣬²»Äܹ»°ÑÓû§¾ÖÏÞÓÚʹÓÃÌØ¶¨µÄ¹©Ó¦ÉÌ»òÓ²¼þÅäÖÃÀ´½â¾ö¡£GlusterFS²ÉÓÿª·ÅʽÉè¼Æ£¬¹ã·ºÖ§³Ö¹¤Òµ±ê×¼µÄ´æ´¢¡¢ÍøÂçºÍ¼ÆËã»úÉ豸£¬¶ø·ÇÓë¶¨ÖÆ»¯µÄרÓÃÓ²¼þÉ豸À¦°ó¡£¶ÔÓÚÉÌÒµ¿Í»§£¬GlusterFS¿ÉÒÔÒÔÐéÄâ×°ÖõÄÐÎʽ½»¸¶£¬Ò²¿ÉÒÔÓëÐéÄâ»úÈÝÆ÷´ò°ü£¬»òÕßÊ**«ÓÐÔÆÖв¿ÊðµÄÓ³Ïñ¡£¿ªÔ´ÉçÇøÖУ¬GlusterFS±»´óÁ¿²¿ÊðÔÚ»ùÓÚÁ®¼ÛÏÐÖÃÓ²¼þµÄ¸÷ÖÖ²Ù×÷ϵͳÉÏ£¬¹¹³É¼¯ÖÐͳһµÄÐéÄâ´æ´¢×ÊÔ´³Ø¡£¼ò¶øÑÔÖ®£¬GlusterFSÊÇ¿ª·ÅµÄÈ«Èí¼þʵÏÖ£¬ÍêÈ«¶ÀÁ¢ÓÚÓ²¼þºÍ²Ù×÷ϵͳ¡£
l ÍêÕûµÄ´æ´¢²Ù×÷ϵͳջ£¨Complete Storage Operating System Stack£©
GlusterFS²»½öÌṩÁËÒ»¸ö·Ö²¼Ê½Îļþϵͳ£¬¶øÇÒ»¹ÌṩÁËÐí¶àÆäËûÖØÒªµÄ·Ö²¼Ê½¹¦ÄÜ£¬±ÈÈç·Ö²¼Ê½ÄÚ´æ¹ÜÀí¡¢I/Oµ÷¶È¡¢ÈíRAIDºÍ×ÔÎÒÐÞ¸´µÈ¡£GlusterFS¼³È¡ÁË΢Äں˼ܹ¹µÄ¾Ñé½Ìѵ£¬½è¼øÁËGNU/Hurd²Ù×÷ϵͳµÄÉè¼ÆË¼Ï룬ÔÚÓû§¿Õ¼äʵÏÖÁËÍêÕûµÄ´æ´¢²Ù×÷ϵͳջ¡£
l Óû§¿Õ¼äʵÏÖ£¨User Space£©
Ó봫ͳµÄÎļþϵͳ²»Í¬£¬GlusterFSÔÚÓû§¿Õ¼äʵÏÖ£¬ÕâʹµÃÆä°²×°ºÍÉý¼¶Ìرð¼ò±ã¡£ÁíÍ⣬ÕâÒ²¼«´ó½µµÍÁËÆÕͨÓû§»ùÓÚÔ´ÂëÐÞ¸ÄGlusterFSµÄÃż÷£¬½ö½öÐèҪͨÓõÄC³ÌÐòÉè¼Æ¼¼ÄÜ£¬¶ø²»ÐèÒªÌØ±ðµÄÄں˱à³Ì¾Ñé¡£
l Ä£¿é»¯¶Ñջʽ¼Ü¹¹£¨Modular Stackable Architecture£©
GlusterFS²ÉÓÃÄ£¿é»¯¡¢¶ÑջʽµÄ¼Ü¹¹£¬¿Éͨ¹ýÁé»îµÄÅäÖÃÖ§³Ö¸ß¶È¶¨ÖÆ»¯µÄÓ¦Óû·¾³£¬±ÈÈç´óÎļþ´æ´¢¡¢º£Á¿Ð¡Îļþ´æ´¢¡¢ÔÆ´æ´¢¡¢¶à´«ÊäÐÒéÓ¦Óõȡ£Ã¿¸ö¹¦ÄÜÒÔÄ£¿éÐÎʽʵÏÖ£¬È»ºóÒÔ»ýľ·½Ê½½øÐмòµ¥µÄ×éºÏ£¬¼´¿ÉʵÏÖ¸´ÔӵŦÄÜ¡£±ÈÈ磬ReplicateÄ£¿é¿ÉʵÏÖRAID1£¬StripeÄ£¿é¿ÉʵÏÖRAID0£¬Í¨¹ýÁ½ÕßµÄ×éºÏ¿ÉʵÏÖRAID10ºÍRAID01£¬Í¬Ê±»ñµÃ¸ßÐÔÄܺ͸߿ɿ¿ÐÔ¡£
l ÔʼÊý¾Ý¸ñʽ´æ´¢£¨Data Stored in Native Formats£©
GlusterFSÒÔÔʼÊý¾Ý¸ñʽ£¨ÈçEXT3¡¢EXT4¡¢XFS¡¢ZFS£©´¢´æÊý¾Ý£¬²¢ÊµÏÖ¶àÖÖÊý¾Ý×Ô¶¯ÐÞ¸´»úÖÆ¡£Òò´Ë£¬ÏµÍ³¼«¾ßµ¯ÐÔ£¬¼´Ê¹ÀëÏßÇéÐÎÏÂÎļþÒ²¿ÉÒÔͨ¹ýÆäËû±ê×¼¹¤¾ß½øÐзÃÎÊ¡£Èç¹ûÓû§ÐèÒª´ÓGlusterFSÖÐÇ¨ÒÆÊý¾Ý£¬²»ÐèÒª×÷ÈκÎÐÞ¸ÄÈÔÈ»¿ÉÒÔÍêȫʹÓÃÕâЩÊý¾Ý¡£
l ÎÞÔªÊý¾Ý·þÎñÉè¼Æ£¨No Metadata with the Elastic Hash Algorithm£©
¶ÔScale-Out´æ´¢ÏµÍ³¶øÑÔ£¬×î´óµÄÌôÕ½Ö®Ò»¾ÍÊǼǼÊý¾ÝÂß¼ÓëÎïÀíλÖõÄÓ³Ïñ¹ØÏµ£¬¼´Êý¾ÝÔªÊý¾Ý£¬¿ÉÄÜ»¹°üÀ¨ÖîÈçÊôÐԺͷÃÎÊȨÏÞµÈÐÅÏ¢¡£´«Í³·Ö²¼Ê½´æ´¢ÏµÍ³Ê¹Óü¯ÖÐʽ»ò·Ö²¼Ê½ÔªÊý¾Ý·þÎñÀ´Î¬»¤ÔªÊý¾Ý£¬¼¯ÖÐʽԪÊý¾Ý·þÎñ»áµ¼Öµ¥µã¹ÊÕϺÍÐÔÄÜÆ¿¾±ÎÊÌ⣬¶ø·Ö²¼Ê½ÔªÊý¾Ý·þÎñ´æÔÚÐÔÄܸºÔغÍÔªÊý¾Ýͬ²½Ò»ÖÂÐÔÎÊÌâ¡£ÌØ±ðÊǶÔÓÚº£Á¿Ð¡ÎļþµÄÓ¦Óã¬ÔªÊý¾ÝÎÊÌâÊǸö·Ç³£´óµÄÌôÕ½¡£
GlusterFS¶ÀÌØµØ²ÉÓÃÎÞÔªÊý¾Ý·þÎñµÄÉè¼Æ£¬È¡¶ø´ú֮ʹÓÃËã·¨À´¶¨Î»Îļþ£¬ÔªÊý¾ÝºÍÊý¾ÝûÓзÖÀë¶øÊÇÒ»Æð´æ´¢¡£¼¯ÈºÖеÄËùÓд洢ϵͳ·þÎñÆ÷¶¼¿ÉÒÔÖÇÄܵضÔÎļþÊý¾Ý·ÖƬ½øÐж¨Î»£¬½ö½ö¸ù¾ÝÎļþÃûºÍ·¾¶²¢ÔËÓÃËã·¨¼´¿É£¬¶ø²»ÐèÒª²éѯË÷Òý»òÕ߯äËû·þÎñÆ÷¡£ÕâʹµÃÊý¾Ý·ÃÎÊÍêÈ«²¢Ðл¯£¬´Ó¶øÊµÏÖÕæÕýµÄÏßÐÔÐÔÄÜÀ©Õ¹¡£ÎÞÔªÊý¾Ý·þÎñÆ÷¼«´óÌá¸ßÁËGlusterFSµÄÐÔÄÜ¡¢¿É¿¿ÐÔºÍÎȶ¨ÐÔ¡£
4. ×ÜÌå¼Ü¹¹ÓëÉè¼Æ

ͼ2 GlusterFS¼Ü¹¹ºÍ×é³É
GlusterFS×ÜÌå¼Ü¹¹Óë×é³É²¿·ÖÈçͼ2Ëùʾ£¬ËüÖ÷ÒªÓÉ´æ´¢·þÎñÆ÷£¨Brick Server£©¡¢¿Í»§¶ËÒÔ¼°NFS/Samba´æ´¢Íø¹Ø×é³É¡£²»ÄÑ·¢ÏÖ£¬GlusterFS¼Ü¹¹ÖÐûÓÐÔªÊý¾Ý·þÎñÆ÷×é¼þ£¬ÕâÊÇÆä×î´óµÄÉè¼ÆÕâµã£¬¶ÔÓÚÌáÉýÕû¸öϵͳµÄÐÔÄÜ¡¢¿É¿¿ÐÔºÍÎȶ¨ÐÔ¶¼ÓÐמö¶¨ÐÔµÄÒâÒå¡£GlusterFSÖ§³ÖTCP/IPºÍInfiniBand RDMA¸ßËÙÍøÂ绥Áª£¬¿Í»§¶Ë¿Éͨ¹ýÔÉúGlusterfsÐÒé·ÃÎÊÊý¾Ý£¬ÆäËûûÓÐÔËÐÐGlusterFS¿Í»§¶ËµÄÖÕ¶Ë¿Éͨ¹ýNFS/CIFS±ê×¼ÐÒéͨ¹ý´æ´¢Íø¹Ø·ÃÎÊÊý¾Ý¡£
´æ´¢·þÎñÆ÷Ö÷ÒªÌṩ»ù±¾µÄÊý¾Ý´æ´¢¹¦ÄÜ£¬×îÖÕµÄÎļþÊý¾Ýͨ¹ýͳһµÄµ÷¶È²ßÂÔ·Ö²¼ÔÚ²»Í¬µÄ´æ´¢·þÎñÆ÷ÉÏ¡£ËüÃÇÉÏÃæÔËÐÐ×ÅGlusterfsd½øÐУ¬¸ºÔð´¦ÀíÀ´×ÔÆäËû×é¼þµÄÊý¾Ý·þÎñÇëÇó¡£ÈçǰËùÊö£¬Êý¾ÝÒÔÔʼ¸ñʽֱ½Ó´æ´¢ÔÚ·þÎñÆ÷µÄ±¾µØÎļþϵͳÉÏ£¬ÈçEXT3¡¢EXT4¡¢XFS¡¢ZFSµÈ£¬ÔËÐзþÎñʱָ¶¨Êý¾Ý´æ´¢Â·¾¶¡£¶à¸ö´æ´¢·þÎñÆ÷¿ÉÒÔͨ¹ý¿Í»§¶Ë»ò´æ´¢Íø¹ØÉϵľí¹ÜÀíÆ÷×é³É¼¯Èº£¬ÈçStripe£¨RAID0£©¡¢Replicate£¨RAID1£©ºÍDHT£¨·Ö²¼Ê½Hash£©´æ´¢¼¯Èº£¬Ò²¿ÉÀûÓÃǶÌ××éºÏ¹¹³É¸ü¼Ó¸´Ôӵļ¯Èº£¬ÈçRAID10¡£
ÓÉÓÚûÓÐÁËÔªÊý¾Ý·þÎñÆ÷£¬¿Í»§¶Ë³Ðµ£Á˸ü¶àµÄ¹¦ÄÜ£¬°üÀ¨Êý¾Ý¾í¹ÜÀí¡¢I/Oµ÷¶È¡¢Îļþ¶¨Î»¡¢Êý¾Ý»º´æµÈ¹¦ÄÜ¡£¿Í»§¶ËÉÏÔËÐÐGlusterfs½ø³Ì£¬Ëüʵ¼ÊÊÇGlusterfsdµÄ·ûºÅÁ´½Ó£¬ÀûÓÃFUSE£¨File system in User Space£©Ä£¿é½«GlusterFS¹ÒÔØµ½±¾µØÎļþϵͳ֮ÉÏ£¬ÊµÏÖPOSIX¼æÈݵķ½Ê½À´·ÃÎÊϵͳÊý¾Ý¡£ÔÚ×îеÄ3.1.X°æ±¾ÖУ¬¿Í»§¶Ë²»ÔÙÐèÒª¶ÀÁ¢Î¬»¤¾íÅäÖÃÐÅÏ¢£¬¸Ä³É×Ô¶¯´ÓÔËÐÐÔÚÍø¹ØÉϵÄglusterdµ¯ÐÔ¾í¹ÜÀí·þÎñ½øÐлñÈ¡ºÍ¸üУ¬¼«´ó¼ò»¯Á˾í¹ÜÀí¡£GlusterFS¿Í»§¶Ë¸ºÔØÏà¶Ô´«Í³·Ö²¼Ê½ÎļþϵͳҪ¸ß£¬°üÀ¨CPUÕ¼ÓÃÂʺÍÄÚ´æÕ¼Óá£
GlusterFS´æ´¢Íø¹ØÌṩµ¯ÐÔ¾í¹ÜÀíºÍNFS/CIFS·ÃÎÊ´úÀí¹¦ÄÜ£¬ÆäÉÏÔËÐÐGlusterdºÍGlusterfs½ø³Ì£¬Á½Õß¶¼ÊÇGlusterfsd·ûºÅÁ´½Ó¡£¾í¹ÜÀíÆ÷¸ºÔðÂß¼¾íµÄ´´½¨¡¢É¾³ý¡¢ÈÝÁ¿À©Õ¹ÓëËõ¼õ¡¢ÈÝÁ¿Æ½»¬µÈ¹¦ÄÜ£¬²¢¸ºÔðÏò¿Í»§¶ËÌṩÂß¼¾íÐÅÏ¢¼°Ö÷¶¯¸üÐÂ֪ͨ¹¦Äܵȡ£GlusterFS 3.1.XʵÏÖÁËÂß¼¾íµÄµ¯ÐÔºÍ×Ô¶¯»¯¹ÜÀí£¬²»ÐèÒªÖжÏÊý¾Ý·þÎñ»òÉϲãÓ¦ÓÃÒµÎñ¡£¶ÔÓÚWindows¿Í»§¶Ë»òûÓа²×°GlusterFSµÄ¿Í»§¶Ë£¬ÐèҪͨ¹ýNFS/CIFS´úÀíÍø¹ØÀ´·ÃÎÊ£¬ÕâÊ±Íø¹Ø±»ÅäÖóÉNFS»òSamba·þÎñÆ÷¡£Ïà¶ÔÔÉú¿Í»§¶Ë£¬Íø¹ØÔÚÐÔÄÜÉÏÒªÊܵ½NFS/SambaµÄÖÆÔ¼¡£

ͼ3 GlusterFSÄ£¿é»¯¶ÑջʽÉè¼Æ
GlusterFSÊÇÄ£¿é»¯¶ÑջʽµÄ¼Ü¹¹Éè¼Æ£¬Èçͼ3Ëùʾ¡£Ä£¿é³ÆÎªTranslator£¬ÊÇGlusterFSÌṩµÄÒ»ÖÖÇ¿´ó»úÖÆ£¬½èÖúÕâÖÖÁ¼ºÃ¶¨ÒåµÄ½Ó¿Ú¿ÉÒÔ¸ßЧ¼ò±ãµØÀ©Õ¹ÎļþϵͳµÄ¹¦ÄÜ¡£·þÎñ¶ËÓë¿Í»§¶ËÄ£¿é½Ó¿ÚÊǼæÈݵģ¬Í¬Ò»¸ötranslator¿ÉͬʱÔÚÁ½±ß¼ÓÔØ¡£Ã¿¸ötranslator¶¼ÊÇSO¶¯Ì¬¿â£¬ÔËÐÐʱ¸ù¾ÝÅäÖö¯Ì¬¼ÓÔØ¡£Ã¿¸öÄ£¿éʵÏÖÌØ¶¨»ù±¾¹¦ÄÜ£¬GlusterFSÖÐËùÓеŦÄܶ¼ÊÇͨ¹ýtranslatorʵÏÖ£¬±ÈÈçCluster, Storage, Performance, Protocol, FeaturesµÈ£¬»ù±¾¼òµ¥µÄÄ£¿é¿ÉÒÔͨ¹ý¶ÑջʽµÄ×éºÏÀ´ÊµÏÖ¸´ÔӵŦÄÜ¡£ÕâÒ»Éè¼ÆË¼Ïë½è¼øÁËGNU/Hurd΢Äں˵ÄÐéÄâÎļþϵͳÉè¼Æ£¬¿ÉÒ԰ѶÔÍⲿϵͳµÄ·ÃÎÊת»»³ÉÄ¿±êϵͳµÄÊʵ±µ÷Óᣴ󲿷ÖÄ£¿é¶¼ÔËÐÐÔÚ¿Í»§¶Ë£¬±ÈÈçºÏ³ÉÆ÷¡¢I/Oµ÷¶ÈÆ÷ºÍÐÔÄÜÓÅ»¯µÈ£¬·þÎñ¶ËÏà¶Ô¼òµ¥Ðí¶à¡£¿Í»§¶ËºÍ´æ´¢·þÎñÆ÷¾ùÓÐ×Ô¼ºµÄ´æ´¢Õ»£¬¹¹³ÉÁËÒ»¿ÃTranslator¹¦ÄÜÊ÷£¬Ó¦ÓÃÁËÈô¸ÉÄ£¿é¡£Ä£¿é»¯ºÍ¶ÑջʽµÄ¼Ü¹¹Éè¼Æ£¬¼«´ó½µµÍÁËϵͳÉè¼Æ¸´ÔÓÐÔ£¬¼ò»¯ÁËϵͳµÄʵÏÖ¡¢Éý¼¶ÒÔ¼°ÏµÍ³Î¬»¤¡£
5. µ¯ÐÔ¹þÏ£Ëã·¨
¶ÔÓÚ·Ö²¼Ê½ÏµÍ³¶øÑÔ£¬ÔªÊý¾Ý´¦ÀíÊǾö¶¨ÏµÍ³À©Õ¹ÐÔ¡¢ÐÔÄÜÒÔ¼°Îȶ¨ÐԵĹؼü¡£GlusterFSÁí±Ùõè¾¶£¬³¹µ×ÞðÆúÁËÔªÊý¾Ý·þÎñ£¬Ê¹Óõ¯ÐÔ¹þÏ£Ëã·¨´úÌæ´«Í³·Ö²¼Ê½ÎļþϵͳÖеļ¯Öлò·Ö²¼Ê½ÔªÊý¾Ý·þÎñ¡£Õâ¸ù±¾ÐÔ½â¾öÁËÔªÊý¾ÝÕâÒ»ÄÑÌ⣬´Ó¶ø»ñµÃÁ˽ӽüÏßÐԵĸßÀ©Õ¹ÐÔ£¬Í¬Ê±Ò²Ìá¸ßÁËϵͳÐÔÄܺͿɿ¿ÐÔ¡£GlusterFSʹÓÃËã·¨½øÐÐÊý¾Ý¶¨Î»£¬¼¯ÈºÖеÄÈκηþÎñÆ÷ºÍ¿Í»§¶ËÖ»Ðè¸ù¾Ý·¾¶ºÍÎļþÃû¾Í¿ÉÒÔ¶ÔÊý¾Ý½øÐж¨Î»ºÍ¶Áд·ÃÎÊ¡£»»¾ä»°Ëµ£¬GlusterFS²»ÐèÒª½«ÔªÊý¾ÝÓëÊý¾Ý½øÐзÖÀ룬ÒòΪÎļþ¶¨Î»¿É¶ÀÁ¢²¢Ðл¯½øÐС£GlusterFSÖÐÊý¾Ý·ÃÎÊÁ÷³ÌÈçÏ£º
1¡¢¼ÆËãhashÖµ£¬ÊäÈë²ÎÊýΪÎļþ·¾¶ºÍÎļþÃû£»
2¡¢¸ù¾ÝhashÖµÔÚ¼¯ÈºÖÐÑ¡Ôñ×Ó¾í£¨´æ´¢·þÎñÆ÷£©£¬½øÐÐÎļþ¶¨Î»£»
3¡¢¶ÔËùÑ¡ÔñµÄ×Ó¾í½øÐÐÊý¾Ý·ÃÎÊ¡£
GlusterFSĿǰʹÓÃDavies-MeyerËã·¨¼ÆËãÎļþÃûhashÖµ£¬»ñµÃÒ»¸ö32λÕûÊý¡£Davies-MeyerËã·¨¾ßÓзdz£ºÃµÄhash·Ö²¼ÐÔ£¬¼ÆËãЧÂʺܸߡ£¼ÙÉèÂß¼¾íÖеĴ洢·þÎñÆ÷ÓÐN¸ö£¬Ôò32λÕûÊý¿Õ¼ä±»Æ½¾ù»®·ÖΪN¸öÁ¬Ðø×ӿռ䣬ÿ¸ö¿Õ¼ä·Ö±ðÓ³Éäµ½Ò»¸ö´æ´¢·þÎñÆ÷¡£ÕâÑù£¬¼ÆËãµÃµ½µÄ32λhashÖµ¾Í»á±»Í¶Éäµ½Ò»¸ö´æ´¢·þÎñÆ÷£¬¼´ÎÒÃÇҪѡÔñµÄ×Ó¾í¡£ÄѵÀÕæÊÇÈç´Ë¼òµ¥£¿ÏÖÔÚÈÃÎÒÃÇÀ´¿¼ÂÇһϴ洢½Úµã¼ÓÈëºÍɾ³ý¡¢Îļþ¸ÄÃûµÈÇé¿ö£¬GlusterFSÈçºÎ½â¾öÕâЩÎÊÌâ¶ø¾ß±¸µ¯ÐÔµÄÄØ£¿
Âß¼¾íÖмÓÈëÒ»¸öд洢½Úµã£¬Èç¹û²»×÷ÆäËûÈκδ¦Àí£¬hashÖµÓ³Éä¿Õ¼ä½«»á·¢Éú±ä»¯£¬ÏÖÓеÄÎļþĿ¼¿ÉÄÜ»á±»ÖØÐ¶¨Î»µ½ÆäËûµÄ´æ´¢·þÎñÆ÷ÉÏ£¬´Ó¶øµ¼Ö¶¨Î»Ê§°Ü¡£½â¾öÎÊÌâµÄ·½·¨ÊǶÔÎļþĿ¼½øÐÐÖØÐ·ֲ¼£¬°ÑÎļþÒÆ¶¯µ½ÕýÈ·µÄ´æ´¢·þÎñÆ÷ÉÏÈ¥£¬µ«Õâ´ó´ó¼ÓÖØÁËϵͳ¸ºÔØ£¬ÓÈÆäÊǶÔÓÚÒѾ´æ´¢´óÁ¿µÄÊý¾ÝµÄº£Á¿´æ´¢ÏµÍ³À´ËµÏÔÈ»ÊDz»¿ÉÐеġ£ÁíÒ»ÖÖ·½·¨ÊÇʹÓÃÒ»ÖÂÐÔ¹þÏ£Ëã·¨£¬ÐÞ¸ÄÐÂÔö½Úµã¼°ÏàÁÚ½ÚµãµÄhashÓ³Éä¿Õ¼ä£¬½öÐèÒªÒÆ¶¯ÏàÁÚ½ÚµãÉϵIJ¿·ÖÊý¾ÝÖÁÐÂÔö½Úµã£¬Ó°ÏìÏà¶ÔСÁ˺ܶࡣȻ¶ø£¬ÕâÓÖ´øÀ´ÁíÍâÒ»¸öÎÊÌ⣬¼´ÏµÍ³ÕûÌå¸ºÔØ²»¾ùºâ¡£GlusterFSûÓвÉÓÃÉÏÊöÁ½ÖÖ·½·¨£¬¶øÊÇÉè¼ÆÁ˸üΪµ¯ÐÔµÄËã·¨¡£GlusterFSµÄ¹þÏ£·Ö²¼ÊÇÒÔĿ¼Ϊ»ù±¾µ¥Î»µÄ£¬ÎļþµÄ¸¸Ä¿Â¼ÀûÓÃÀ©Õ¹ÊôÐԼǼÁË×Ó¾íÓ³ÉäÐÅÏ¢£¬ÆäÏÂÃæ×ÓÎļþĿ¼ÔÚ¸¸Ä¿Â¼ËùÊô´æ´¢·þÎñÆ÷ÖнøÐзֲ¼¡£ÓÉÓÚÎļþĿ¼ÊÂÏȱ£´æÁË·Ö²¼ÐÅÏ¢£¬Òò´ËÐÂÔö½Úµã²»»áÓ°ÏìÏÖÓÐÎļþ´æ´¢·Ö²¼£¬Ëü½«´Ó´ËºóµÄд´½¨Ä¿Â¼¿ªÊ¼²ÎÓë´æ´¢·Ö²¼µ÷¶È¡£ÕâÖÖÉè¼Æ£¬ÐÂÔö½Úµã²»ÐèÒªÒÆ¶¯ÈκÎÎļþ£¬µ«ÊǸºÔؾùºâûÓÐÆ½»¬´¦Àí£¬ÀÏ½Úµã¸ºÔØ½ÏÖØ¡£GlusterFSÔÚÉè¼ÆÖп¼ÂÇÁËÕâÒ»ÎÊÌ⣬ÔÚн¨Îļþʱ»áÓÅÏÈ¿¼ÂÇÈÝÁ¿¸ºÔØ×îÇáµÄ½Úµã£¬ÔÚÄ¿±ê´æ´¢½ÚµãÉÏ´´½¨ÎļþÁ´½ÓÖ±ÏòÕæÕý´æ´¢ÎļþµÄ½Úµã¡£ÁíÍ⣬GlusterFSµ¯ÐÔ¾í¹ÜÀí¹¤¾ß¿ÉÒÔÔÚºǫ́ÒÔÈ˹¤·½Ê½À´Ö´ÐиºÔØÆ½»¬£¬½«½øÐÐÎļþÒÆ¶¯ºÍÖØÐ·ֲ¼£¬´ËºóËùÓд洢·þÎñÆ÷¶¼»á¾ù»á±»µ÷¶È¡£
GlusterFSĿǰ¶Ô´æ´¢½Úµãɾ³ýÖ§³ÖÓÐÏÞ£¬»¹ÎÞ·¨×öµ½ÍêÈ«ÎÞÈ˸ÉÔ¤µÄ³Ì¶È¡£Èç¹ûÖ±½Óɾ³ý½Úµã£¬ÄÇôËùÔÚ´æ´¢·þÎñÆ÷ÉϵÄÎļþ½«ÎÞ·¨ä¯ÀÀºÍ·ÃÎÊ£¬´´½¨ÎļþĿ¼Ҳ»áʧ°Ü¡£µ±Ç°È˹¤½â¾ö·½·¨ÓÐÁ½¸ö£¬Ò»Êǽ«½ÚµãÉϵÄÊý¾ÝÖØÐ¸´ÖƵ½GlusterFSÖУ¬¶þÊÇʹÓÃеĽڵãÀ´Ì滻ɾ³ý½Úµã²¢±£³ÖÔÓÐÊý¾Ý¡£
Èç¹ûÒ»¸öÎļþ±»¸ÄÃû£¬ÏÔÈ»hashËã·¨½«²úÉú²»Í¬µÄÖµ£¬·Ç³£¿ÉÄܻᷢÉúÎļþ±»¶¨Î»µ½²»Í¬µÄ´æ´¢·þÎñÆ÷ÉÏ£¬´Ó¶øµ¼ÖÂÎļþ·ÃÎÊʧ°Ü¡£²ÉÓÃÊý¾ÝÒÆ¶¯µÄ·½·¨£¬¶ÔÓÚ´óÎļþÊǺÜÄÑÔÚʵʱÍê³ÉµÄ¡£ÎªÁ˲»Ó°ÏìÐÔÄܺͷþÎñÖжϣ¬GlusterFS²ÉÓÃÁËÎļþÁ´½ÓÀ´½â¾öÎļþÖØÃüÃûÎÊÌ⣬ÔÚÄ¿±ê´æ´¢·þÎñÆ÷ÉÏ´´½¨Ò»¸öÁ´½ÓÖ¸Ïòʵ¼ÊµÄ´æ´¢·þÎñÆ÷£¬·ÃÎÊʱÓÉϵͳ½âÎö²¢½øÐÐÖØ¶¨Ïò¡£ÁíÍ⣬ºǫ́ͬʱ½øÐÐÎļþÇ¨ÒÆ£¬³É¹¦ºóÎļþÁ´½Ó½«±»×Ô¶¯É¾³ý¡£¶ÔÓÚÎļþÒÆ¶¯Ò²×÷ÀàËÆ´¦Àí£¬ºÃ´¦ÊÇǰ̨²Ù×÷¿Éʵʱ´¦Àí£¬ÎïÀíÊý¾ÝÇ¨ÒÆÖÃÓÚºǫ́ѡÔñÊʵ±Ê±»úÖ´ÐС£

ͼ4 GlusterFSµ¯ÐÔ¾í¹ÜÀí
µ¯ÐÔ¹þÏ£Ë㷨ΪÎļþ·ÖÅäÂß¼¾í£¬ÄÇôGlusterFSÈçºÎΪÂß¼¾í·ÖÅäÎïÀí¾íÄØ£¿GlusterFS3.1.XʵÏÖÁËÕæÕýµÄµ¯ÐÔ¾í¹ÜÀí£¬Èçͼ4Ëùʾ¡£´æ´¢¾íÊǶԵײãÓ²¼þµÄ³éÏ󣬿ÉÒÔ¸ù¾ÝÐèÒª½øÐÐÀ©ÈݺÍËõ¼õ£¬ÒÔ¼°ÔÚ²»Í¬ÎïÀíϵͳ֮¼ä½øÐÐÇ¨ÒÆ¡£´æ´¢·þÎñÆ÷¿ÉÒÔÔÚÏßÔö¼ÓºÍÒÆ³ý£¬²¢ÄÜÔÚ¼¯ÈºÖ®¼ä×Ô¶¯½øÐÐÊý¾Ý¸ºÔØÆ½ºâ£¬Êý¾Ý×ÜÊÇÔÚÏß¿ÉÓã¬Ã»ÓÐÓ¦ÓÃÖжϡ£ÎļþϵͳÅäÖøüÐÂÒ²¿ÉÒÔÔÚÏßÖ´ÐУ¬Ëù×÷ÅäÖñ䶯Äܹ»¿ìËÙ¶¯Ì¬µØÔÚ¼¯ÈºÖд«²¥£¬´Ó¶ø×Ô¶¯ÊÊÓ¦¸ºÔز¨¶¯ºÍÐÔÄܵ÷ÓÅ¡£
µ¯ÐÔ¹þÏ£Ëã·¨±¾Éí²¢Ã»ÓÐÌṩÊý¾ÝÈÝ´í¹¦ÄÜ£¬GlusterFSʹÓþµÏñ»ò¸´ÖÆÀ´±£Ö¤Êý¾Ý¿ÉÓÃÐÔ£¬ÍƼöʹÓþµÏñ»ò3·¸´ÖÆ¡£¸´ÖÆÄ£Ê½Ï£¬´æ´¢·þÎñÆ÷ʹÓÃͬ²½Ð´¸´ÖƵ½ÆäËûµÄ´æ´¢·þÎñÆ÷£¬µ¥¸ö·þÎñÆ÷¹ÊÕÏÍêÈ«¶Ô¿Í»§¶Ë͸Ã÷¡£´ËÍ⣬GlusterFSûÓжԸ´ÖÆÊýÁ¿½øÐÐÏÞÖÆ£¬¶Á±»·ÖÉ¢µ½ËùÓеľµÏñ´æ´¢½Úµã£¬¿ÉÒÔÌá¸ß¶ÁÐÔÄÜ¡£µ¯ÐÔ¹þÏ£Ëã·¨·ÖÅäÎļþµ½Î¨Ò»µÄÂß¼¾í£¬¶ø¸´ÖÆ¿ÉÒÔ±£Ö¤Êý¾ÝÖÁÉÙ±£´æÔÚÁ½¸ö²»Í¬´æ´¢½Úµã£¬Á½Õß½áºÏʹµÃGlusterFS¾ß±¸¸ü¸ßµÄµ¯ÐÔ¡£
6. Translators
ÈçǰËùÊö£¬TranslatorsÊÇGlusterFSÌṩµÄÒ»ÖÖÇ¿´óÎļþϵͳ¹¦ÄÜÀ©Õ¹»úÖÆ£¬ÕâÒ»Éè¼ÆË¼Ïë½è¼øÓÚGNU/Hurd΢Äں˲Ù×÷ϵͳ¡£GlusterFSÖÐËùÓеŦÄܶ¼Í¨¹ýTranslator»úÖÆÊµÏÖ£¬ÔËÐÐʱÒÔ¶¯Ì¬¿â·½Ê½½øÐмÓÔØ£¬·þÎñ¶ËºÍ¿Í»§¶ËÏ໥¼æÈÝ¡£GlusterFS 3.1.XÖУ¬Ö÷Òª°üÀ¨ÒÔϼ¸ÀàTranslator£º
£¨1£© Cluster£º´æ´¢¼¯Èº·Ö²¼£¬Ä¿Ç°ÓÐAFR, DHT, StripeÈýÖÖ·½Ê½
£¨2£© Debug£º¸ú×ÙGlusterFSÄÚ²¿º¯ÊýºÍϵͳµ÷ÓÃ
£¨3£© Encryption£º¼òµ¥µÄÊý¾Ý¼ÓÃÜʵÏÖ
£¨4£© Features£º·ÃÎÊ¿ØÖÆ¡¢Ëø¡¢Mac¼æÈÝ¡¢¾²Ä¬¡¢Åä¶î¡¢Ö»¶Á¡¢»ØÊÕÕ¾µÈ
£¨5£© Mgmt£ºµ¯ÐÔ¾í¹ÜÀí
£¨6£© Mount£ºFUSE½Ó¿ÚʵÏÖ
£¨7£© Nfs£ºÄÚ²¿NFS·þÎñÆ÷
£¨8£© Performance£ºio-cache, io-threads, quick-read, read-ahead, stat-prefetch, sysmlink-cache, write-behindµÈÐÔÄÜÓÅ»¯
£¨9£© Protocol£º·þÎñÆ÷ºÍ¿Í»§¶ËÐÒéʵÏÖ
£¨10£©Storage£ºµ×²ãÎļþϵͳPOSIX½Ó¿ÚʵÏÖ
ÕâÀïÎÒÃÇÖØµã½éÉÜÒ»ÏÂCluster Translators£¬ËüÊÇʵÏÖGlusterFS¼¯Èº´æ´¢µÄºËÐÄ£¬Ëü°üÀ¨AFR£¨Automatic File Replication£©¡¢DHT£¨Distributed Hash Table£©ºÍStripeÈýÖÖÀàÐÍ¡£
AFRÏ൱ÓÚRAID1£¬Í¬Ò»ÎļþÔÚ¶à¸ö´æ´¢½ÚµãÉϱ£Áô¶à·Ý£¬Ö÷ÒªÓÃÓÚʵÏָ߿ÉÓÃÐÔÒÔ¼°Êý¾Ý×Ô¶¯ÐÞ¸´¡£AFRËùÓÐ×Ó¾íÉϾßÓÐÏàͬµÄÃû×ֿռ䣬²éÕÒÎļþʱ´ÓµÚÒ»¸ö½Úµã¿ªÊ¼£¬Ö±µ½ËÑË÷³É¹¦»ò×îºó½ÚµãËÑË÷Íê±Ï¡£¶ÁÊý¾Ýʱ£¬AFR»á°ÑËùÓÐÇëÇóµ÷¶Èµ½ËùÓд洢½Úµã£¬½øÐиºÔؾùºâÒÔÌá¸ßϵͳÐÔÄÜ¡£Ð´Êý¾Ýʱ£¬Ê×ÏÈÐèÒªÔÚËùÓÐËø·þÎñÆ÷É϶ÔÎļþ¼ÓËø£¬Ä¬ÈϵÚÒ»¸ö½ÚµãÎªËø·þÎñÆ÷£¬¿ÉÒÔÖ¸¶¨¶à¸ö¡£È»ºó£¬AFRÒÔÈÕ־ʼþ·½Ê½¶ÔËùÓзþÎñÆ÷½øÐÐдÊý¾Ý²Ù×÷£¬³É¹¦ºóɾ³ýÈÕÖ¾²¢½âËø¡£AFR»á×Ô¶¯¼ì²â²¢ÐÞ¸´Í¬Ò»ÎļþµÄÊý¾Ý²»Ò»ÖÂÐÔ£¬ËüʹÓøü¸ÄÈÕÖ¾À´È·¶¨ºÃµÄÊý¾Ý¸±±¾¡£×Ô¶¯ÐÞ¸´ÔÚÎļþĿ¼Ê״ηÃÎÊʱ´¥·¢£¬Èç¹ûÊÇĿ¼½«ÔÚËùÓÐ×Ó¾íÉϸ´ÖÆÕýÈ·Êý¾Ý£¬Èç¹ûÎļþ²»´æÔò´´½¨£¬ÎļþÐÅÏ¢²»Æ¥ÅäÔòÐÞ¸´£¬ÈÕ־ָʾ¸üÐÂÔò½øÐиüС£
DHT¼´ÉÏÃæËù½éÉܵĵ¯ÐÔ¹þÏ£Ëã·¨£¬Ëü²ÉÓÃhash·½Ê½½øÐÐÊý¾Ý·Ö²¼£¬Ãû×Ö¿Õ¼ä·Ö²¼ÔÚËùÓнڵãÉÏ¡£²éÕÒÎļþʱ£¬Í¨¹ýµ¯ÐÔ¹þÏ£Ëã·¨½øÐУ¬²»ÒÀÀµÃû×ֿռ䡣µ«±éÀúÎļþĿ¼ʱ£¬ÔòʵÏÖ½ÏΪ¸´ÔӺ͵ÍЧ£¬ÐèÒªËÑË÷ËùÓеĴ洢½Úµã¡£µ¥Ò»ÎļþÖ»»áµ÷¶Èµ½Î¨Ò»µÄ´æ´¢½Úµã£¬Ò»µ©Îļþ±»¶¨Î»ºó£¬¶ÁдģʽÏà¶Ô¼òµ¥¡£DHT²»¾ß±¸ÈÝ´íÄÜÁ¦£¬ÐèÒª½èÖúAFRʵÏָ߿ÉÓÃÐÔ, Èçͼ5ËùʾӦÓð¸Àý¡£
StripeÏ൱ÓÚRAID0£¬¼´·ÖƬ´æ´¢£¬Îļþ±»»®·Ö³É¹Ì¶¨³¤¶ÈµÄÊý¾Ý·ÖƬÒÔRound-RobinÂÖת·½Ê½´æ´¢ÔÚËùÓд洢½Úµã¡£StripeËùÓд洢½Úµã×é³ÉÍêÕûµÄÃû×ֿռ䣬²éÕÒÎļþʱÐèҪѯÎÊËùÓнڵ㣬Õâµã·Ç³£µÍЧ¡£¶ÁдÊý¾Ýʱ£¬StripeÉæ¼°È«²¿·ÖƬ´æ´¢½Úµã£¬²Ù×÷¿ÉÒÔÔÚ¶à¸ö½ÚµãÖ®¼ä²¢·¢Ö´ÐУ¬ÐÔÄܷdz£¸ß¡£Stripeͨ³£ÓëAFR×éºÏʹÓ㬹¹³ÉRAID10/RAID01£¬Í¬Ê±»ñµÃ¸ßÐÔÄܺ͸߿ÉÓÃÐÔ£¬µ±È»´æ´¢ÀûÓÃÂÊ»áµÍÓÚ50%¡£
