# 娉擄紙store-huge锛�
store-huge鑳屾櫙锛�
* 闅忕潃鍖哄潡璐︽湰涓殑浜ゆ槗閲忎笉鏂鍔狅紝鍗曚釜鏂囦欢绯荤粺纾佺洏绌洪棿涓嶅闇€瑕佹墿瀹广€�
* store-huge鏀寔閰嶇疆澶氫釜鏂囦欢绯荤粺(纾佺洏)鏉ヤ繚璇佹í鍚戞墿灞曡兘鍔涖€�
* 鍚屾椂鍙互灏嗘棫鍖哄潡锛屼互鍐风儹鍒嗙鐨勬柟寮忥紝灏嗘棫鍖哄潡绉诲姩鍒颁綆鎴愭湰鐨勬枃浠剁郴缁熶腑銆傛潵鍑忓皯瀛樺偍鎴愭湰銆�

![Storage_store_huge.png](../images/Storage_store_huge.png)
## 娉ㄦ剰
鐩墠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 鏂囦欢锛屽凡缁忎粠 鐑洏 绉诲姩鍒颁簡 鍐风洏锛岃鏄� 鍐风儹鍒嗙鏄垚鍔熺殑銆�