Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
PPTV¾ÛÁ¦´«Ã½ DCOS Docker´æ´¢·½Ê½µÄÑо¿Ñ¡ÐÍ
 
×÷ÕߣºÕÅÕýÒË  À´Ô´£ºÎ¢ÐÅ ·¢²¼ÓÚ 2016-10-12
  2228  次浏览      27
 

±¾ÎĵÄÄ¿µÄ

DockerÔ­ÉúÌṩÁ˶àÖÖ´æ´¢Çý¶¯£¬Óû§ÐèÒª×öµÄÊǽáºÏ×Ô¼ºµÄ³¡¾°Ñ¡ÓÃÆäÖÐÖ®Ò»¡£Ã»ÓÐÒ»ÖÖ´æ´¢Çý¶¯ÊÇÊʺÏËùÓг¡¾°µÄ¡£±¾ÎÄÏȼòµ¥½éÉÜÈçϼ¸ÖÖ´æ´¢Çý¶¯£ºAUFS¡¢DeviceMapper¡¢Btrfs¡¢overlayFs¡¢ZFS£¬Ö®ºó˵Ã÷PPTVÔÚ¹¹½¨DCOSµÄÑ¡Ð͹ý³Ì¡£

ÈçºÎÖ¸¶¨´æ´¢Çý¶¯

Óû§¾ö¶¨Ê¹ÓÃÄÄ¿îÇý¶¯£¬ÒªÔÚDockerÊØ»¤½ø³ÌÆô¶¯Ê±Ö¸¶¨£¬µ±È»Ö¸¶¨µÄÇý¶¯±ØÐë±»µ×²ã²Ù×÷ϵͳ֧³Ö¡£Èç¸ü»»´æ´¢Çý¶¯£¬ÐèÖØÆôÊØ»¤½ø³Ì¡£Ö¸¶¨´æ´¢Çý¶¯µÄ·½·¨¿É²Î¿¼Docker¹ÙÍø£¬²Ù×÷¼òµ¥·½±ã¡£¸÷´æ´¢Çý¶¯¶¼·â×°ÁËͳһ½Ó¿Ú¹©ÊØ»¤½ø³Ìµ÷Óã¬Ò»µ©Íê³É³õʼ»¯£¬´æ´¢Çý¶¯µÄ²îÒì¶ÔÊØ»¤½ø³ÌÀ´ËµÊÇ͸Ã÷µÄ¡£

Copy On Write¼¼Êõ

ÏëÒªÓÐЧµÄʹÓô洢Çý¶¯£¬ÐèÒªÁ˽âDockerÈçºÎ´æ´¢¾µÏñÒÔ¼°ÈÝÆ÷ÈçºÎʹÓþµÏñ¡£Docker¾µÏñº¬ÓÐÆô¶¯DockerÈÝÆ÷ËùÐèµÄÎļþϵͳ½á¹¹¼°ÆäÄÚÈÝ¡£ÔÚ´«Í³µÄLinux²Ù×÷ϵͳÄÚºËÆô¶¯Ê±£¬Ê×ÏȹÒÔØÒ»¸öÖ»¶ÁµÄrootfs£¬µ±ÏµÍ³¼ì²âÆäÍêÕûÐÔºó£¬ÔÙ½«ÆäÇл»Îª¶Áдģʽ¡£¶øÔÚDocker¼Ü¹¹ÖУ¬µ±Docker daemonΪDockerÈÝÆ÷¹ÒÔØrootfsʱ£¬ÑØÓÃÁËLinuxÄÚºËÆô¶¯Ê±µÄ·½·¨£¬¼´½«rootfsÉèΪֻ¶Áģʽ£¬ÔÚ¹ÒÔØÍê±ÏÖ®ºó£¬ÔÚÒÑÓеÄÖ»¶ÁrootfsÉÏÔÙ¹ÒÔØÒ»¸ö¶Áд²ã¡£ÕâÑù¡£¿É¶Áд²ã´¦ÓÚDockerÈÝÆ÷ÎļþϵͳµÄ×î¶¥²ã£¬ÆäÏ¿ÉÄܹÒÔØ¶à¸öÖ»¶Á²ã£¬Ö»ÓÐÔÚDockerÈÝÆ÷ÔËÐйý³ÌÖÐÎļþϵͳ·¢Éú±ä»¯Ê±£¬²Å»á°ÑÎļþ¿½±´µ½¶Áд²ãÔÙÐ޸ģ¬ÕâÑùµÄ¼¼Êõ±»³ÆÎªÐ´Ê±¸´ÖÆ£¨Copy On Write£©¡£´æ´¢Çý¶¯ÌṩÁ˽ӿÚÖ§³Ö¾µÏñ·Ö²ãÓëдʱ¸´ÖÆ»úÖÆ¡£

AUFS

DockerÍŶÓ×ʼÔÚdotCloudÄÚ²¿±ãʹÓÃAUFSÀ´ÔËÐÐÈÝÆ÷£¬Òò´ËAUFSÓÐ×µÄÀúÊ·£¬Ò²¾ÍÓµÓнÏΪ·á¸»µÄÔËά¾­Ñé¡£AUFS²ã²ã¶Ñµþ¶à¸öÎļþϵͳ²ã£¬È»ºóÿһ²ã¶¼¶ÔÍ⹫¿ªÒ»¸öµ¥¶ÀµÄ¹ÒÔØµã¹©·ÃÎÊ¡£Ëüÿһ´ÎµÄ²éÕÒ×ÜÊÇÏÈ´Ó×î¶¥²ã¿ªÊ¼£¬µ±Ä³¸öÎļþÐèÒª×÷¶Áд²Ù×÷ʱ¸ÃÎļþ½«»á±»¸´ÖƵ½×î¶¥²ã£¬Òò´ËÔÚÐÔÄÜ·½ÃæµÄÆ¿¾±Ö÷ÒªÔÚÓÚÐèҪдÈë´óÎļþµÄ³¡¾°¡£²»¹ýAUFS´æ´¢Çý¶¯×îÖ÷ÒªµÄÎÊÌ⻹ÊÇAUFSÎļþϵͳ±¾ÉíûÓб»ÄÉÈëÖ÷Á÷µÄLinuxÄں˰汾¡£

ͼ1 AUFS¾µÏñ²ãÈÝÆ÷²ã

DeviceMapper

DeviceMapperʹÓÃÔ¤·ÖÅä¼¼ÊõÀ´ÊµÏÖ¾µÏñ·Ö²ã£¬DeviceMapperµÄдʱ¸´ÖƼ¼ÊõÊÇ»ùÓÚ¿é¼¶±ðµÄ£¬²»Í¬ÓÚAUFS»ùÓÚÎļþ¼¶±ð¡£µ±DockerÊØ»¤½ø³ÌÆô¶¯Ê±£¬»á´´½¨Ô¤·ÖÅä»úÖÆËù±ØÐëµÄÁ½¸ö¿éÉ豸£ºÓÃ×÷´æ´¢³ØµÄÊý¾ÝÉ豸ºÍά»¤ÔªÊý¾ÝµÄÉ豸£¬ÊØ»¤½ø³ÌÔÚÔ¤·ÖÅäµÄ´æ´¢³ØÉÏ´´½¨Ò»¸ö»ù´¡É豸£¬ËùÓÐеľµÏñ²ã¶¼ÊÇ»ù´¡É豸µÄÒ»¸ö¿ìÕÕ£¬»ù´¡É豸µÄ´óСĬÈÏΪ10GB£¬¿ÉÒÔÔÚÊØ»¤½ø³ÌÆô¶¯Ê±Í¨¹ýdm.basesize²ÎÊýÀ´ÐÞ¸ÄÕâÒ»ÅäÖá£DeviceMapperÓÐÁ½ÖÖģʽ£¬Ä¬ÈÏΪloopģʽ£¬Éú²ú»·¾³½¨ÒéʹÓÃdirect-lvmģʽ£¬Ô­ÒòΪloopģʽÊÇ»ùÓÚÁ½¸öÏ¡ÊèÎļþ´´½¨ÐéÄâµÄ¿éÉ豸µÄ£¬Ó°ÏìÐÔÄÜ¡£

ͼ2 DeviceMapper¾µÏñ²ãÈÝÆ÷²ã

Btrfs

BtrfsÒÔ¿éΪµ¥Î»´æ´¢Êý¾Ý£¬Ò»¸ö¿é¾ÍÊÇÒ»¶Îԭʼ´æ´¢¡£DockerÀûÓÃBtrfsµÄ×Ó¾íÌØÐÔ£¬Ã¿Ò»¸öд´½¨µÄÈÝÆ÷¶¼»á±»·ÖÅäÒ»¸öеÄBtrfs×Ó¾í£¬Èç¹û´æÔÚ¸¸¾µÏñ²ã£¬ÄÇôËü»áÒÔ¸¸¾µÏñ²ã×Ó¾íµÄÒ»¸ö¿ìÕÕµÄÐÎʽ´´½¨¡£

ͼ3 Btrfs¾µÏñ²ãÈÝÆ÷²ã

OverlayFs

OverlayFsÊÇÒ»¸öÁªºÏÎļþϵͳ£¬ÓëAUFSµÄ×ö·¨ÓÐЩÀàËÆ£¬ÓÉÓںϲ¢Ä¿Â¼£¬overlayFsÔÚ²éÕÒЧÂÊ·½Ãæ×÷Á˲»Ð¡µÄ¸Ä½ø£¬²»Í¬ÓÚAUFS¾µÏñ²ãÔ½¶àÔò²éÕÒʱ¼äÔ½³¤¡£»ùÓÚoverlayFs¼¼ÊõÓÐÁ½ÖÖ´æ´¢Çý¶¯£ºoverlayÓëoverlay2£¬¸ù¾Ý¹Ù·½Îĵµ£¬overlayÒªÇóÄں˰汾3.18ÒÔÉÏ£¬overlay2ÒªÇóÄں˰汾4.0ÒÔÉÏ¡£µ«ÊÇÎÒÃǾ­¹ý³¢ÊÔ£¬¿ÉÒÔÔÚ3.10ÄÚºËʹÓÃoverlay¡£

ͼ4 overlay¾µÏñ²ãÈÝÆ÷²ã

ZFS

ZFSÊÇSun¹«Ë¾£¨ÏÖÔÚµÄOracle£©·¢Ã÷µÄ²¢ÔÚCDDLÌõ¿îÏ¿ªÔ´¡£¶øÓÉÓÚCDDLÓëGPL¿ªÔ´Ìõ¿îµÄ²»¼æÈÝ£¬ZFSÎÞ·¨²¢ÈëLinuxÄÚºËÖ÷Ïß¡£²»¹ýZFS On Linux£¨ZoL£©ÏîÄ¿ÌṩÁËÒ»¸ö¿ÉÒÔµ¥¶À°²×°µÄÄÚºËÄ£¿éºÍÓû§¿Õ¼ä¹¤¾ß¡£³ý·ÇÄãÔÚZoLÏîÄ¿ÉÏÒѾ­ÓдóÁ¿µÄʵ¼ù¾­Ñ飬Ïֽ׶β¢²»ÍƼöÔÚÉú²ú»·¾³ÖÐʹÓÃzfs×÷ΪDockerµÄ´æ´¢Çý¶¯¡£

ÈçÏÂͼËùʾ£¬¾µÏñµÄ×îµ×²ã£¨base layer£©ÊÇÒ»¸öZFSÎļþϵͳ¡£Ã¿Ò»¸ö¾µÏñ×Ӳ㶼ÊÇÒ»¸ö»ùÓÚϲãZFS¿ìÕÕµÄZFS¿Ë¡ʵÌå¡£Ò»¸öÈÝÆ÷µÄÎļþϵͳÊÇÒ»¸öZFS¿Ë¡£¬Ï²ãÊÇ´Ó¾µÏñ²ã´´½¨µÄ¿ìÕÕ¡£ËùÓÐÊý¾ÝʵÌå¶¼´Ózpool·ÖÅä¿Õ¼ä¡£

ͼ5 ZFS¾µÏñ²ãÈÝÆ÷²ã

ÎÒÃǵÄÏÖ×´

ÔÚ¹ýÈ¥µÄÒ»¶Îʱ¼ä£¬ÎÒÃÇʹÓÃloopģʽµÄDeviceMapper×÷Ϊ´æ´¢Çý¶¯£¬ÊÇDockerĬÈϵģ¬ÔÚʹÓùý³ÌÖÐÓöµ½Ò»Ð©ÎÊÌâ¡£

[root@oak-qa-04 Deploy]# docker stop

b977235038bce3176279bdd27cf84b12755eff0ed08d6a11b09e5e8e97480f78

b977235038bce3176279bdd27cf84b12755eff0ed08d6a11b09e5e8e97480f78

[root@oak-qa-04 Deploy]# docker rm

b977235038bce3176279bdd27cf84b12755eff0ed08d6a11b09e5e8e97480f78

Error response from daemon: Driver devicemapperfailed to remove root filesystem

b977235038bce3176279bdd27cf84b12755eff0ed08d6a11b09e5e8e97480f78

: Device is Busy

ÈçÉÏÃæËùʾÎÊÌ⣬²»Ö»Ò»´Î³öÏÖ£¬Ä¿Ç°¶¼Ã»ÓÐÍêÈ«½â¾ö£¬×îÖÕÖ»ÄÜÓÃÖØÆôDockerµÄ·½·¨£¬Èç¹ûÔÚÉú²ú»·¾³ÖÐÓöµ½ÕâÑùµÄÎÊÌ⣬Ӧ¸ÃÊÇ´ó¼Ò²»Ï£Íû¿´µ½µÄ¡£

ÎÒÃÇ·ÖÎö²úÉú¸ÃÎÊÌâµÄÔ­Òò»¹ÊÇÔÚÓÚloopģʽµÄµÄdevicemapperËùÓõÄÊý¾ÝÉ豸ºÍÔªÊý¾ÝÉ豸¶¼Ö»Êǰ󶨵½»Ø»·É豸ÉϵÄÏ¡ÊèÎļþ£¬Èç²»×öÌØ±ðµÄÅäÖã¬ÕâЩÎļþ´óСһ°ã¿´ÉÏÈ¥ÊÇ100GB£¨ÈçÏÂͼËùʾloop0£©ºÍ2GB£¨ÈçÏÂͼËùʾloop1£©£¬ÓÉÓÚʹÓÃÔ¤·ÖÅä»úÖÆ£¬ÔÚʵ¼ÊдÈëÊý¾Ý֮ǰ£¬²¢²»»áÕæÕýÕ¼ÓÃ100GBºÍ2GBµÄ´ÅÅ̿ռ䡣ÕâÑùµÄ»úÖÆÈÃÎÒÃÇÏëµ½Á½¸öÎÊÌ⣺1¡¢Ï¡ÊèÎļþÐÔÄܲ»Ì«ºÃ£¬ÇÒÎļþ±¾Éí¿ÉÄÜ»áË𻵣»2¡¢ÓÉÓÚÔ¤·ÖÅä»úÖÆ£¬´ýÐèÒªÕ¼ÓõÄʱºò£¬Èç¹ûʵ¼Ê´ÅÅ̿ռäÒѾ­Ã»ÓÐÄÇô¶àÁË£¬¾Í»á·¢ÉúÒì³£¡£

[root@oak-qa-05]#lsblk
NAME MAJ:MINRM SIZE RO TYPE MOUNTPOINT
fd0 8:0 0 4k 0 disk
sda1
sda2
loop0 7:0 0 100G 0 loop
loop1 7:1 0 2G 0 loop

½ÓÏÂÀ´ÈçºÎÑ¡Ôñ

Óû§¿É¸ù¾Ý×Ô¼ºµÄʵ¼ÊÐèÒª£¬¿¼ÂÇÒÔϼ¸¸ö·½Ã棺ÈÝÆ÷Ãܶȡ¢Îļþ´óС¡¢ÊÇ·ñIOÃܼ¯µÈ£¬ÒÔ¼°×Ô¼ºÔÚʹÓ÷½ÃæµÄϲºÃ£¬À´Ñ¡ÔñÒ»ÖÖ¡£

ÓÉÓÚAUFSûÓв¢ÈëlinuxÄÚºËÖ÷Ïߣ¬overlayûÓÐÍêȫ֧³ÖPOSIX±ê×¼£¬ZFSÒ²´æÔÚ¼æÈÝÐÔÎÊÌâ¡£¼øÓÚDeviceMapper£¨loopģʽ£©Ö®Ç°Óöµ½ÖÖÖÖÎÊÌ⣬ËùÒÔÎÒÃǼƻ®ÔÚBtrfsÓëDeviceMapper£¨direct-lvmģʽ£©Á½ÕßÖÐѡһÖÖ£¬ÏÂÃæ¶ÔËûÃǽøÐÐһЩIOÐÔÄܵIJâÊÔ£¬Ö®ºóÔÚÏÖÓл·¾³Öв¿·Ö²¿ÊðBtrfs£¬²¿·Ö²¿ÊðDeviceMapper£¬¶ÔÎȶ¨ÐÔ½øÐбȽϡ£

´ó¼Ò¶ÔÓÚ´òËãʹÓõĴ洢Çý¶¯£¬¿ÉÒÔ¹Ø×¢¹Ù·½ÍøÕ¾µÄbugÁÐ±í£¬Ò²ÊÇÒ»¸ö¿É²Î¿¼µÄÒòËØ¡£

IOÐÔÄܲâÊÔ

ʹÓÃIOzone²âÊÔ¹¤¾ß£¬¸Ã¹¤¾ß²ÎÊý¶àÑù£¬¿ÉÁé»îʹÓ㬲âÊÔ¸÷ÖÖ¶Áд£¬ÎÒÃǽáºÏ×Ô¼ºµÄ³¡¾°£¬Ö÷Òª²âÊÔ¶ÁµÄËÙ¶È£¬Ö÷Òª¹Ø×¢Îļþ´óСÔÚ¼¸°ÙkKBµ½¼¸MBÖ®¼äµÄÊý¾Ý£¬½ö±È½ÏBtrfsÓëDeviceMapper¡£

²âÊÔ»·¾³

ËÞÖ÷»úÅäÖÃÈçÏ£º

²âÊÔ1

Read£¨¶Á²âÊÔ£©£¬Îļþ´óСΪ4kµ½128k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ6 ²âÊÔ1

²âÊÔ2

Read£¨¶Á²âÊÔ£©£¬Îļþ´óСΪ128kµ½8192k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ7 ²âÊÔ2

²âÊÔ3

Read£¨¶Á²âÊÔ£©£¬Îļþ´óСΪ256kµ½16384k£¬ÒÔrecord 256kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ8 ²âÊÔ3

²âÊÔ4

Reread£¨¶Ô¸Õ¶Á¹ýµÄÎļþÖØ¶Á£©£¬Îļþ´óСΪ4kµ½128k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ9 ²âÊÔ4

²âÊÔ5

Reread£¨¶Ô¸Õ¶Á¹ýµÄÎļþÖØ¶Á£©£¬Îļþ´óСΪ128kµ½8192k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ10 ²âÊÔ5

²âÊÔ6

Reread£¨¶Ô¸Õ¶Á¹ýµÄÎļþÖØ¶Á£©£¬Îļþ´óСΪ256kµ½16384k£¬ÒÔrecord 256kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ11 ²âÊÔ6

²âÊÔ7

Random read£¨Ëæ»ú¶Á£©£¬Îļþ´óСΪ4kµ½128k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ12 ²âÊÔ7

²âÊÔ8

Random read£¨Ëæ»ú¶Á£©£¬Îļþ´óСΪ128kµ½8192k£¬ÒÔrecord 4kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ13 ²âÊÔ8

²âÊÔ9

Random read£¨Ëæ»ú¶Á£©£¬Îļþ´óСΪ256kµ½16384k£¬ÒÔrecord 256kÀ´´«Ê䣬²âÊÔ½á¹ûÈçÏÂͼËùʾ£º

ºìɫΪBtrfs£¬À¶É«ÎªDeviceMapper£»

ºá×ø±êΪÎļþ´óС£¬µ¥Î»ÎªkBytes£¬×Ý×ø±êΪ´«ÊäËÙ¶È£¬µ¥Î»ÎªkBytes/s£»

ͼ14 ²âÊÔ9

С½á

¶ÔÓÚÎÒÃÇĿǰ´òËãÓÃdockerÉÏÏßµÄppÔÆµÈ·þÎñ£¬Ö÷Òª¹Ø×¢´Ó¼¸°ÙKBµ½¼¸MB´óСµÄÎļþ£¬Ö»Ð迼ÂǶÁ£¬Ð´µÄ²Ù×÷ÊDzÉÓùÒÔØ¾íµÄ·½Ê½£¬²»»áÖ±½ÓдÔÚÈÝÆ÷Àï¡£ÔÚ¶ÁµÄ·½Ã棬devicemapper±ÈBtrfsÐÔÄÜÂԺá£ÔÚÎȶ¨ÐÔ·½ÃæµÄ±È½Ï£¬ÓÉÓÚÏßϵÄÊÔÑé²¢²»ÄÜÍêȫģ·ÂÏßÉϵij¡¾°£¬³õ²½´òËãÉÏÏßʱһ²¿·ÖÈÝÆ÷ÔËÐÐÔÚdevicemapper´æ´¢Çý¶¯µÄ»·¾³Ï£¬Ò»²¿·ÖÈÝÆ÷ÔËÐÐÔÚBtrfs´æ´¢Çý¶¯µÄ»·¾³Ï£¬½øÐй۲졢±È½Ï¡£

   
2228 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ