CURVEÊÇÍøÒ×ÓÎÏ·¶ÀÁ¢Éè¼Æ·½°¸²úÆ·Ñз¢µÄ¸ßÐÔÄÜ¡¢¸ß¿ÉÓÃÐÔ¡¢¸ß¿¿Æ×·Ö²¼Ê½ÏµÍ³´æ´¢ÏµÍ³£¬¾ß±¸Ê®·ÖÓÅÁ¼µÄÀ©Õ¹ÐÔ¡£¸ù¾Ý¸Ã´¢´æ»ù×ùÄܹ»´òÔì³öÊÊÓò»Ò»ÑùÓ¦ÓÃÁìÓòµÄ´æ´¢ÏµÍ³£¬Èç¿é´æ´¢¡¢°¢ÀïÔÆoss¡¢ÔÆÔÉúÊý¾Ý¿â²éѯµÈ¡£µ±½ñ´ó¼Ò¸ù¾ÝCURVEÔçÒÑÍê³ÉÁ˸ßÐÔÄÜ¿é´æ´¢ÏµÍ³£¬ÊÊÓÿìÕÕ¸üи´ÖƺÍÐÞ¸´ ,ÊÊÓÃQEMUvmÐéÄâ»úºÍÎïÀí»úNBD»úÆ÷É豸¶þÖÖ³õʼ»¯·½·¨, ÔÚÍøÒ×ÓÎÏ·ƒÈ²¿×öΪ¸ßÐÔÄÜÍøÅÌÓ¦Óá£
¡¡¡¡curveµÄ¿ª·¢Éè¼Æ×ÔʼÖÁÖÕ½ô½ôÎ§ÈÆÈý¸öºËÐÄÀíÄһÊÇÇкϵ±½ñ´¢´æÓ²¼þÉèÊ©·¢Õ¹Ç÷Ïò£¬±£Ö¤Ó²¼þÈí¼þÈںϴòÔì³ö¶¥¼âµÄ´æ´¢²úÆ·£»¶þÊDZü³Ö×Å¡°Simple Can be harder than complex¡±£¬ÕÆÎÕÄÑÌâʵÖÊ×´¿öÏÂÌôÑ¡·Ç³£¼òµ¥µÄ¼Æ»®·½°¸½â¾öÀ§ÄÑ£»ÈýÊÇÏàÓµ¿ªÔ´ÏµÍ³£¬ÔÚ³ä×ãµ÷²éµÄǰÌáÌõ¼þÏÂÓ¦ÓóöÉ«µÄ¿ª·ÅÔ´´úÂëÏîÄ¿²¿¼þ£¬·ÀÖ¹´úÂëÖØ¹¹¡£
¡¡¡¡µ±½ñÍøÒ×ÓÎÏ·¸ù¾ÝcurveÔçÒÑÍê³ÉÁ˸ßÐÔÄÜ¿é´æ´¢ÏµÍ³£¬ÊÊÓÿìÕÕ¸üи´ÖƺÍÐÞ¸´ ,ÊÊÓÃQEMUvmÐéÄâ»úºÍÎïÀí»úNBD»úÆ÷É豸¶þÖÖ³õʼ»¯·½·¨, ÔÚÍøÒ×ÓÎÏ·ƒÈ²¿×öΪ¸ßÐÔÄÜÍøÅÌÓ¦Óá£
¡¡¡¡1¡¢¸ßÐÔÄÜ
¡¡¡¡¸ßÐÔÄÜÊÇcurveµÄÒ»´óÌØÐÔ£¬Ò²ÊÇÐÂÏîÄ¿¾«Ó¢ÍŶӽ¨Á¢curveÐÂÏîÄ¿µÄ³õÐÄ¡£RPC·½ÃæcurveÑ¡ÓÃÁ˸ßÐÔÄܺ͵ÍÑÓ³Ùʱ¼ä¶øÇÒÒÑ¿ªÔ´ÏµÍ³µÄbrpc£»ÔÚÒ»ÖÂÐÔ·½ÃæÌôÑ¡Á˸ù¾ÝquorumÌåÖÆ¶øÇÒ¿ªÔ´ÏµÍ³µÄbraft£¬´ÓÐÒéÊé·½Ãæ¶øÑÔquorumÌåÖÆÔÚÑÓ³Ùʱ¼ä²ãÃæÓëÉú¾ãÀ´ºÃÓÚ¶àÍű¾Ç¿Ò»Öµķ½·¨¡£Íê³ÉÉÏcurve¶Ôbraft¿ìÕÕ¸üеÄÍê³É¿ªÕ¹ÁËÌáÉý£¬ÔÚÓÐÏÞ״̬»úµÄÍê³ÉÉÏÑ¡ÓÃchunkfilepoolµÄ·½·¨(¸´Î»¼¯ÈºµÄÇé¿öÏ»ָ´³ö³§ÉèÖóöÌØ¶¨Õ¼±ÈµÄÊÒÄÚ¿Õ¼ä×÷Ϊchunk)´Ùʹ×îµ×²ãµÄÔØÈë±ä´óΪ0£»³ý´ËÖ®ÍâcurveÈÔÔÚchunkÉÏ¿ªÕ¹¸ü×¼·ù¶ÈµÄÏêϸµØÖ·ÊÒÄÚ¿Õ¼ähashÒÔ×öµ½¶Áд·ÖÀë¡¢¼õÉÙIOײ»÷µÈµÄʵ¼ÊЧ¹û£¬½ø¶ø½øÒ»²½Ìá¸ßIOÌØÐÔ¡£
¡¡¡¡2¡¢¸ß¿ÉÓÃÐÔ
¡¡¡¡¸ß¿ÉÓÃÐÔÊÇcurveµÄÁíÒ»´óÌØÐÔ¡£MDS¡¢ChunkServer¼°ÆäSnapShotCloneServer¶¼ÊÊÓöàʵÀý²¼Êð£¬Ò»²¿·ÖʵÀý³öÏÖÒì³£²»Î£º¦È«²¿¼¯ÈºµÄÒ×ÓÃÐÔ¡£
¡¡¡¡2.1¡¢MDS
¡¡¡¡MDSÊÇÎÞ״̬µÄ£¬Ç¿ÁÒÍÆ¼ö×îÉÙ²¼Êð2¸öʵÀý¡£¸ù¾ÝEtcd¿ªÕ¹Ñ¡Ö÷¡£ºÃ¼¸¸öMDSʵÀý¸ù¾ÝEtcd¿ªÕ¹Ñ¡Ö÷£¬µ±µ¥¶ÀʵÀýÎÞЧʱ£¬Äܹ»Ã뼶ת»»µ½´ËÍâÒ»¸öʵÀý¡£ÎÞЧʵÀýÉÏÒѾ½â¾öµÄÒªÇó£¬ClientºÍSnapShotCloneServer¶¼ÊÇ»á¶ÔÆä¿ªÕ¹ÔÙÊÔ£¬ÒÔ×öµ½²»Î£º¦¼¯ÈºÒ×ÓÃÐÔµÄʵ¼ÊЧ¹û¡£
¡¡¡¡2.2¡¢SnapShotCloneServer
¡¡¡¡SnapShotCloneServerÓëMDSÏà½ü, Ò²ÊǸù¾ÝEtcd¿ªÕ¹Ñ¡Ö÷£¬²»Ò»ÑùµÄÊÇ£¬Ëü¸ù¾ÝÈý²ã½»»»»ú¶ÔÍ⿪·Å³öʾ·þÎñÏîÄ¿¡£ÎÞЧÆÚÄÚµÄÒªÇ󲻳ɹ¦ÔÙÊÔÈ«ÊÇÃݵȵ쬲»Î£º¦Ã¿ÈÕÈÎÎñµÄ׼ȷÐÔ¼°Æä¼¯ÈºµÄÒ×ÓÃÐÔ¡£
¡¡¡¡2.3¡¢ChunkServer
¡¡¡¡ChunkServerÊÇÒ»¸ö¼¯Èº£¬¸ù¾ÝRaftÐÒéÊé±£Ö¤Êý¾ÝÒ»ÖÂÐÔ£¬²¢¸ù¾ÝMDS×öÈý²ã½»»»»ú¡£µ¥¶À½ÚµãÎÞЧʱ£¬»áΣº¦µ½ÕâÒ»½ÚµãÉÏ´¢´æµÄÈ«²¿Copyset¡£Õë¶ÔCopysetÉϵÄLeader½Úµã£¬»áÖÕ¶Ï·þÎñÏîÄ¿£¬µÈºòÔٴδóÑ¡£»Õë¶ÔCopysetÉϵÄfollower½Úµã£¬·þÎñÏîÄ¿²»ÈÝÒ×ÊÜÓ°Ïì¡£µ±Ä³Ò»Chunkserver½ÚµãÎÞЧÇÒÔÚÒ»¶Îʱ¼äÄÚû·¨ÐÞ¸´£¬MDS»á½«ÆäÉϵÄÊý¾Ý±¸·Ý×ªÒÆµ½±ðµÄ½ÚµãÉÏ¡£