# 娉擄紙store-huge锛� store-huge鑳屾櫙锛� * 闅忕潃鍖哄潡璐︽湰涓殑浜ゆ槗閲忎笉鏂鍔狅紝鍗曚釜鏂囦欢绯荤粺纾佺洏绌洪棿涓嶅闇€瑕佹墿瀹广€� * store-huge鏀寔閰嶇疆澶氫釜鏂囦欢绯荤粺(纾佺洏)鏉ヤ繚璇佹í鍚戞墿灞曡兘鍔涖€� * 鍚屾椂鍙互灏嗘棫鍖哄潡锛屼互鍐风儹鍒嗙鐨勬柟寮忥紝灏嗘棫鍖哄潡绉诲姩鍒颁綆鎴愭湰鐨勬枃浠剁郴缁熶腑銆傛潵鍑忓皯瀛樺偍鎴愭湰銆�  ## 娉ㄦ剰 鐩墠store-huge 杩樺浜巃lpha鐗堟湰锛屽彲浠ュ皬鑼冨洿娴嬭瘯锛屾杩庡ぇ瀹跺仛娴嬭瘯锛屽苟鎻愬嚭瀹濊吹寤鸿銆傛敞鎰忓湪鐢熶骇鐜涓璋ㄦ厧浣跨敤銆傚悗缁垜浠細涓嶆柇鏀硅繘銆� ## 瀛樺偍寮曟搸閫夋嫨 ### 閰嶇疆 鍦╟hainmaker.yml涓璼torage浣滅敤鍩熶笅锛岄€夋嫨浣跨敤 engine_provider: store-huge 瀛樺偍寮曟搸銆傚鏋滀笉閰嶇疆engine_provider 瀛楁锛屽垯榛樿浣跨敤鏃у瓨鍌ㄥ紩鎿庛€� ```shell script # engine provider engine_provider: store-huge ``` ## 澶氭枃浠剁郴缁熶娇鐢� ### 閰嶇疆 鍋囪瑙勫垝浣跨敤2涓枃浠剁郴缁�(2涓洏)瀛樺偍鐑暟鎹� hot1, hot2 浣跨敤2涓枃浠剁郴缁�(2涓洏)瀛樺偍鍐锋暟鎹� cold1, cold2 浠hainmaker.yml涓璼torage锛岄厤缃殑澶氭枃浠剁郴缁熶负渚� ```shell script # engine provider engine_provider: store-huge #block file system block_file_config: online_file_system: "/home/hot1,/home/hot2" archive_file_system: "/home/cold1,/home/cold2" #store engine version storage_config_version: major_version: 1 minor_version: 2 ``` 浠ヤ笂锛岀儹鏁版嵁鍐欏埌 online_file_system 閲屻€傚鏋滃仛鍐风儹鍒嗙锛屽喎鏁版嵁鍐欏埌 archive_file_system閲岄潰銆� ### online_file_system 閰嶇疆绂佸繉 ####鍙鍘熷垯 online_file_system涓厤缃殑鏂囦欢绯荤粺锛屽彧鑳� 澧炲姞锛屼笉鑳藉垹闄ゃ€� 姣斿 涓€涓� 鑺傜偣 閰嶇疆 online_file_system:"/hot1,/hot2" 濡傛灉瑕佸鍔犵‖鐩橈紝姣斿 澧炲姞 "/hot3"锛屽彉鎴� online_file_system:"/hot1,/hot2,/hot3" 鏄纭殑銆傚鍔犳枃浠剁郴缁�/纭洏 锛岄渶瑕侀噸鍚繘绋嬨€� 涓嶈兘 鎶� 鐜版湁鐨� /hot2 鍒犻櫎銆傚垹闄� /hot2 瑙嗕负 涓㈠純浜� /hot2 鍙婇噷闈㈢殑鏁版嵁銆傛槸涓ラ噸鐨勮繍缁撮厤缃簨鏁呫€� ```shell script online_file_system: "/hot1,/hot2" //鍙樻垚 "/hot1" 涓嶅厑璁� ``` online_file_system涓厤缃殑鏂囦欢绯荤粺锛屽彧鑳� 澧炲姞锛屼笉鑳戒慨鏀广€� 鎶� /hot2 rename 鎴� /hot4 骞舵妸 online_file_system涓厤缃殑 /hot2 鏀规垚 /hot4銆� 鏄笉鍏佽鐨勩€� ####鎸夌収瀛楀吀搴忓鍔� 濡傛灉瑕佹柊澧� 涓€涓枃浠剁郴缁燂紝鏂板鐨勬枃浠剁郴缁熺殑瀛楃涓� 蹇呴』 澶т簬 鐩墠鐜版湁鐨勬枃浠剁郴缁� 姣斿 鐜板湪鏄� ```shell script online_file_system:"/hot5" 鏂板 "/hot2" 锛屼笉鍏佽 ``` 鍥犱负 "/hot2" 姣� "/hot5" 灏忋€� ### 妯℃嫙澶氫釜鏂囦欢绯荤粺 濡傛灉鍦ㄦ祴璇曠幆澧冧腑锛屾病鏈夎繖涔堝鐜版垚鐨勬枃浠剁郴缁熴€傚彲浠ョ敤losetup鏉ュ垱寤哄嚑涓祴璇曠敤銆�(娉ㄦ剰杩欐槸娴嬭瘯鐢ㄧ殑) ```shell script dd if=/dev/zero of=hot1.img bs=1G count=1 ``` ```shell script mkfs.ext4 hot1.img 鏍规嵁鎻愮ず杈撳叆y ``` ```shell script mkdir /hot1 mount -o loop hot1.img /hot1 ``` ```shell script df -h /dev/loop0 976M 103M 807M 12% /hot1 ``` 娴嬭瘯瀹岋紝鍙互 umount /hot1 锛屽鏋滀笉闇€瑕� hot1.img 锛屽彲浠ョ洿鎺ュ垹浜� ### 澧炲姞鏂囦欢绯荤粺 鍋囪褰撳墠online_file_system閰嶇疆浜嗕袱涓枃浠剁郴缁熴€�/home/hot1,/home/hot2 ``` online_file_system: "/home/hot1,/home/hot2" ``` 濡傛灉瑕佸鍔犱竴涓枃浠剁郴缁熴€傞偅涔堟柊澧炵殑鏂囦欢绯荤粺鐨勫悕瀛楋紝蹇呴』鎸夌収瀛楀吀搴忕殑鎺掑簭澶у皬锛屽ぇ浜庡凡鏈夌殑鏂囦欢绯荤粺銆� 涓句緥锛屽鏋滄柊澧炴枃浠剁郴缁� 鏄� /home/a1 鍒欙紝鏂板鐨勬枃浠剁郴缁熶笉鑳借浣跨敤鍒般€傚洜涓哄瓧绗︿覆 "/home/a1" 瑕佸皬浜� "/home/hot1"銆�"/home/hot2" ``` online_file_system: "/home/hot1,/home/hot2,/home/a1" 杩欐牱鏂板鐨�/home/a1 鏃犳硶琚娇鐢� ``` 鍙互鏂板鏂囦欢绯荤粺锛屼负"/home/hot3" ``` online_file_system: "/home/hot1,/home/hot2,/home/hot3" ``` 杩欐牱锛屽瓨鍌ㄤ細渚濇浣跨敤锛屽湪绗竴涓枃浠剁郴缁�("/home/hot1")纾佺洏蹇啓婊℃椂锛屽啓绗簩涓紝渚濇绫绘帹銆� ### online_file_system 鏂囦欢绯荤粺鍒囨崲鍘熷垯 `online_file_system`浼氭寜鐓у瓧鍏稿簭浠庡皬鍒板ぇ鐨勯『搴忥紝鎸夌収椤哄簭浣跨敤銆傜涓€涓啓婊″啓绗簩涓€備緷姝ょ被鎺ㄣ€傚凡鍐欏畬鐨勬枃浠剁郴缁燂紝鍗充娇鏁版嵁娓呯┖锛屼篃涓嶄細鍐嶈浣跨敤銆� 姣斿`online_file_system`:"/hot3,/hot1,/hot2" 鎸夌収瀛楀吀搴�,鎺掑簭锛屽彉涓� `online_file_system`:"/hot1,/hot2,/hot3" 閭d箞鍐欏叆椤哄簭鏄� 鍏堝啓 /hot1, 鍐欐弧鍚� 鍐� /hot2 ,鍐嶅啓婊″悗锛屽啓 /hot3銆� 濡傛灉褰撳墠鍐欏叆鐨勬槸/hot3锛岀劧鍚庢妸/hot1娓呯┖锛屽啀/hot3鍐欐弧鍚庯紝涔熶笉浼氬啀鍐�/hot1銆� 鐢熶骇鐜 鍒囧繉鍒犻櫎鏁版嵁锛屽垏蹇屾洿鏀规枃浠跺す鍚嶅瓧銆� ## 鍐风儹鍒嗙 ### 浣跨敤 cmc 鍐风儹鍒嗙 鐩稿叧鍔熻兘 鏉冮檺瑕佹眰 蹇呴』鐢╝dmin鏉冮檺锛屽湪 sdk_config.yml 閰嶇疆锛屽弬鑰冧互涓嬪唴瀹癸紝蹇呴』鏄� admin 銆� ```shell script 瀹㈡埛绔敤鎴风閽ヨ矾寰� user_key_file_path: "../config/wx-org1.chainmaker.org/certs/user/admin1/admin1.tls.key" 瀹㈡埛绔敤鎴疯瘉涔﹁矾寰� user_crt_file_path: "../config/wx-org1.chainmaker.org/certs/user/admin1/admin1.tls.crt" 瀹㈡埛绔敤鎴蜂氦鏄撶鍚嶇閽ヨ矾寰�(鑻ユ湭璁剧疆锛屽皢浣跨敤user_key_file_path) user_sign_key_file_path: "../config/wx-org1.chainmaker.org/certs/user/admin1/admin1.sign.key" 瀹㈡埛绔敤鎴蜂氦鏄撶鍚嶈瘉涔﹁矾寰�(鑻ユ湭璁剧疆锛屽皢浣跨敤user_crt_file_path) user_sign_crt_file_path: "../config/wx-org1.chainmaker.org/certs/user/admin1/admin1.sign.crt" ``` ### 浣跨敤 cmc 鏌ヨ鍙互鍐风儹鍒嗙鐨勬渶澶у潡楂� ```shell script ./cmc get_hot_cold_separate_max_height --chain-id=chain1 --secret-key=mysecret --sdk-conf-path=./testdata/sdk_config.yml ``` 杩斿洖鏈€澶у彲鍐风儹鍒嗙鐨勫潡楂� ```shell script get getHotColdSeparateMaxHeight:[{"max_height":386}] ``` ### 浣跨敤 cmc 瀵规寚瀹氬尯闂寸殑鍖哄潡(0-99楂樺害鐨勫尯鍧�)锛屽仛鍐风儹鍒嗙 ```shell script ./cmc hot_cold_separate --chain-id=chain1 --secret-key=mysecret --sdk-conf-path=../config/sdk_config.yml --start-height=0 --end-height=99 ``` 浼氳繑鍥炰竴涓� 鍐风儹鍒嗙鐨勪换鍔d ```shell script b47c36d3-72c9-4865-9ccb-25b3d0a2a76c2022-12-07 17:58:31.867332472 +0800 CST m=+4733.069198339 ``` ### 浣跨敤 cmc 鏌ヨ鍋氬喎鐑垎绂荤殑浠诲姟鐘舵€� ```shell script ./cmc get_hot_cold_separate_jobInfo --chain-id=chain1 --secret-key=mysecret --sdk-conf-path=../config/sdk_config.yml --job-id='b47c36d3-72c9-4865-9ccb-25b3d0a2a76c2022-12-07 17:58:31.867332472 +0800 CST m=+4733.069198339' ``` 杩斿洖浠诲姟淇℃伅(娉ㄦ剰鍐风儹鍒嗙鏄紓姝ョ殑锛屾墍浠ヨ繑鍥炵殑浠诲姟鐘舵€佷俊鎭篃鏄彉鍖栫殑锛屽寘鎷� status, affect_files 瀛楁) ```shell script get jobInfo:[{"start_time":1678083481,"end_time":1678083651,"status":4,"start_height":0,"end_height":99, "scan_files":["00000000000000000001","00000000000000000026","00000000000000000065"], "affect_files":["00000000000000000001","00000000000000000026","00000000000000000065"]}] ``` 鍏朵腑 scan_files :琛ㄧず startHeight,endHeight 鍖洪棿鍖呭惈鐨勬枃浠躲€� affect_files :琛ㄧず 瀹為檯瑕佺Щ鍔ㄧ殑鏂囦欢銆�(鏈夌殑鏂囦欢宸茬粡琚喎鐑垎绂荤Щ鍔ㄨ繃锛屾墍浠ヤ笉闇€瑕佸啀绉诲姩) status :琛ㄧず浠诲姟鐘舵€侊紝涓� 4 琛ㄧず鎴愬姛銆� ### 楠岃瘉 0-99鍙峰尯鍧楋紝瀵瑰簲鐨刡f鏂囦欢锛屾槸鍚﹀彂鐢熺Щ鍔� 瀹為檯浣跨敤鍦烘櫙涓嶉渶瑕侀獙璇併€傝繖閲屾槸涓轰簡 娴嬭瘯鏃讹紝婕旂ず鐨勯渶瑕併€傚鏋滅湅鍒板尯鍧楁枃浠跺凡绉诲姩锛岃鏄庢甯� ```shell script cd /home/hot1 tree cd /home/hot2 tree cd /home/cold1 tree cd /home/cold2 tree ``` 濡傛灉瀵瑰簲鐨刡f 鏂囦欢锛屽凡缁忎粠 鐑洏 绉诲姩鍒颁簡 鍐风洏锛岃鏄� 鍐风儹鍒嗙鏄垚鍔熺殑銆�