鐞嗚Вinode

鍙傝冮槷涓宄拌佸笀鐨 http://www.ruanyifeng.com/blog/2011/12/inode.html

  1. inode鏄粈涔?

纭洏鏈灏忕殑瀛樺偍鍗曚綅鏄墖鍖(sector), 512瀛楄妭姣忎釜,鎿嶄綔绯荤粺璇诲彇涓娆℃ф槸璇诲彇涓涓潡(block),block鐨勬渶甯歌鐨勫崟浣嶆槸4KB锛屾墍浠ュ氨鏄叓涓猻ector缁勬垚涓涓猙lock

鏂囦欢鏁版嵁瀛樺偍鍦╞lock閲岄潰锛屽彟澶栫殑鏂囦欢鍏冧俊鎭鍒涘缓鏃堕棿锛屽垱寤鸿咃紝鏂囦欢澶у皬灏卞瓨鍦ㄤ簡inode,涓枃璇戝悕涓”绱㈠紩鑺傜偣”.

  1. 鍘熶俊鎭寘鍚簡浠涔堜俊鎭

stat鍙互鏌ョ湅鏂囦欢鐨勫厓淇℃伅,涓嶈繃鏌ヤ笉鍒版枃浠剁殑鏂囦欢鍚

  1. inode鐨勫ぇ灏

inode涔熶細娑堣楃‖鐩樼┖闂达紝鎵浠ョ‖鐩樻牸寮忓寲鐨勬椂鍊欙紝鎿嶄綔绯荤粺灏嗙‖鐩樺垎鎴愪袱涓尯鍩熴備竴涓槸鏁版嵁鍖猴紝瀛樻斁鏂囦欢鏁版嵁锛涘彟涓涓槸inode鍖(inode table),瀛樻斁inode鎵鍖呭惈鐨勪俊鎭

姣忎釜inode鑺傜偣鐨勫ぇ灏忥紝涓鑸槸128瀛楄妭鎴256瀛楄妭銆俰node鑺傜偣鐨勬绘暟锛屽湪鏍煎紡鍖栧氨缁欏畾锛屼竴鑸槸姣1kb鎴栨瘡2kb灏辫缃竴涓猧node銆傚亣瀹氬湪涓鍧1GB鐨勭‖鐩樹腑锛屾瘡涓猧node鑺傜偣鐨勫ぇ灏忎负128瀛楄妭锛屾瘡涓KB璁剧疆涓涓猧node锛岄偅涔坕node table鐨勫ぇ灏忓氨浼氳揪鍒128MB锛屽崰鏁村潡纭洏鐨12.8%銆
鏌ョ湅姣忎釜纭洏鍒嗗尯鐨刬node鎬绘暟鍜屽凡缁忎娇鐢ㄧ殑鏁伴噺锛屽彲浠ヤ娇鐢╠f鍛戒护
df -i
鏌ョ湅姣忎釜inode鑺傜偣鐨勫ぇ灏
sudo dumpe2fs -h /dev/hda | grep "Inode size"
鐢变簬姣忎釜鏂囦欢閮藉繀椤绘湁涓涓猧node锛屽洜姝ゆ湁鍙兘鍙戠敓inode宸茬粡鐢ㄥ厜锛屼絾鏄‖鐩樿繕娌″瓨婊$殑鎯呭喌銆傝繖鏃讹紝灏辨棤娉曞湪纭洏涓婂垱寤烘柊鏂囦欢
4. inode鍙风爜
姣忎釜inode閮芥湁涓涓彿鐮侊紝鎿嶄綔绯荤粺鐢╥node鍙风爜鏉ヨ瘑鍒笉鍚岀殑鏂囦欢銆

杩欓噷鍊煎緱閲嶅涓閬嶏紝Unix/Linux绯荤粺鍐呴儴涓嶄娇鐢ㄦ枃浠跺悕锛岃屼娇鐢╥node鍙风爜鏉ヨ瘑鍒枃浠躲傚浜庣郴缁熸潵璇达紝鏂囦欢鍚嶅彧鏄痠node鍙风爜渚夸簬璇嗗埆鐨勫埆绉版垨鑰呯话鍙枫

琛ㄩ潰涓婏紝鐢ㄦ埛閫氳繃鏂囦欢鍚嶏紝鎵撳紑鏂囦欢銆傚疄闄呬笂锛岀郴缁熷唴閮ㄨ繖涓繃绋嬪垎鎴愪笁姝ワ細棣栧厛锛岀郴缁熸壘鍒拌繖涓枃浠跺悕瀵瑰簲鐨刬node鍙风爜锛涘叾娆★紝閫氳繃inode鍙风爜锛岃幏鍙杋node淇℃伅锛涙渶鍚庯紝鏍规嵁inode淇℃伅锛屾壘鍒版枃浠舵暟鎹墍鍦ㄧ殑block锛岃鍑烘暟鎹

浣跨敤ls -i鍛戒护锛屽彲浠ョ湅鍒版枃浠跺悕瀵瑰簲鐨刬node鍙风爜锛
ls -i example.txt
5. 鐩綍鏂囦欢

Unix/Linux绯荤粺涓紝鐩綍锛坉irectory锛変篃鏄竴绉嶆枃浠躲傛墦寮鐩綍锛屽疄闄呬笂灏辨槸鎵撳紑鐩綍鏂囦欢銆

鐩綍鏂囦欢鐨勭粨鏋勯潪甯哥畝鍗曪紝灏辨槸涓绯诲垪鐩綍椤癸紙dirent锛夌殑鍒楄〃銆傛瘡涓洰褰曢」锛岀敱涓ら儴鍒嗙粍鎴愶細鎵鍖呭惈鏂囦欢鐨勬枃浠跺悕锛屼互鍙婅鏂囦欢鍚嶅搴旂殑inode鍙风爜銆

ls鍛戒护鍙垪鍑虹洰褰曟枃浠朵腑鐨勬墍鏈夋枃浠跺悕锛
ls /etc
ls -i鍛戒护鍒楀嚭鏁翠釜鐩綍鏂囦欢锛屽嵆鏂囦欢鍚嶅拰inode鍙风爜锛
ls -i /etc
濡傛灉瑕佹煡鐪嬫枃浠剁殑璇︾粏淇℃伅锛屽氨蹇呴』鏍规嵁inode鍙风爜锛岃闂甶node鑺傜偣锛岃鍙栦俊鎭俵s -l鍛戒护鍒楀嚭鏂囦欢鐨勮缁嗕俊鎭
ls -l /etc
鐞嗚В浜嗕笂闈㈣繖浜涚煡璇嗭紝灏辫兘鐞嗚В鐩綍鐨勬潈闄愩傜洰褰曟枃浠剁殑璇绘潈闄愶紙r锛夊拰鍐欐潈闄愶紙w锛夛紝閮芥槸閽堝鐩綍鏂囦欢鏈韩銆傜敱浜庣洰褰曟枃浠跺唴鍙湁鏂囦欢鍚嶅拰inode鍙风爜锛屾墍浠ュ鏋滃彧鏈夎鏉冮檺锛屽彧鑳借幏鍙栨枃浠跺悕锛屾棤娉曡幏鍙栧叾浠栦俊鎭紝鍥犱负鍏朵粬淇℃伅閮藉偍瀛樺湪inode鑺傜偣涓紝鑰岃鍙杋node鑺傜偣鍐呯殑淇℃伅闇瑕佺洰褰曟枃浠剁殑鎵ц鏉冮檺锛坸锛夈
6. 纭摼鎺
涓鑸儏鍐典笅锛屾枃浠跺悕鍜宨node鍙风爜鏄”涓涓瀵瑰簲”鍏崇郴锛屾瘡涓猧node鍙风爜瀵瑰簲涓涓枃浠跺悕銆備絾鏄紝Unix/Linux绯荤粺鍏佽锛屽涓枃浠跺悕鎸囧悜鍚屼竴涓猧node鍙风爜銆

杩欐剰鍛崇潃锛屽彲浠ョ敤涓嶅悓鐨勬枃浠跺悕璁块棶鍚屾牱鐨勫唴瀹癸紱瀵规枃浠跺唴瀹硅繘琛屼慨鏀癸紝浼氬奖鍝嶅埌鎵鏈夋枃浠跺悕锛涗絾鏄紝鍒犻櫎涓涓枃浠跺悕锛屼笉褰卞搷鍙︿竴涓枃浠跺悕鐨勮闂傝繖绉嶆儏鍐靛氨琚О涓”纭摼鎺”锛坔ard link锛夈

ln鍛戒护鍙互鍒涘缓纭摼鎺ワ細
ln 婧愭枃浠 鐩爣鏂囦欢
杩愯涓婇潰杩欐潯鍛戒护浠ュ悗锛屾簮鏂囦欢涓庣洰鏍囨枃浠剁殑inode鍙风爜鐩稿悓锛岄兘鎸囧悜鍚屼竴涓猧node銆俰node淇℃伅涓湁涓椤瑰彨鍋”閾炬帴鏁”锛岃褰曟寚鍚戣inode鐨勬枃浠跺悕鎬绘暟锛岃繖鏃跺氨浼氬鍔1銆

鍙嶈繃鏉ワ紝鍒犻櫎涓涓枃浠跺悕锛屽氨浼氫娇寰梚node鑺傜偣涓殑”閾炬帴鏁”鍑1銆傚綋杩欎釜鍊煎噺鍒0锛岃〃鏄庢病鏈夋枃浠跺悕鎸囧悜杩欎釜inode锛岀郴缁熷氨浼氬洖鏀惰繖涓猧node鍙风爜锛屼互鍙婂叾鎵瀵瑰簲block鍖哄煙銆

杩欓噷椤轰究璇翠竴涓嬬洰褰曟枃浠剁殑”閾炬帴鏁”銆傚垱寤虹洰褰曟椂锛岄粯璁や細鐢熸垚涓や釜鐩綍椤癸細”.”鍜”..”銆傚墠鑰呯殑inode鍙风爜灏辨槸褰撳墠鐩綍鐨刬node鍙风爜锛岀瓑鍚屼簬褰撳墠鐩綍鐨”纭摼鎺”锛涘悗鑰呯殑inode鍙风爜灏辨槸褰撳墠鐩綍鐨勭埗鐩綍鐨刬node鍙风爜锛岀瓑鍚屼簬鐖剁洰褰曠殑”纭摼鎺”銆傛墍浠ワ紝浠讳綍涓涓洰褰曠殑”纭摼鎺”鎬绘暟锛屾绘槸绛変簬2鍔犱笂瀹冪殑瀛愮洰褰曟绘暟锛堝惈闅愯棌鐩綍锛夈

  1. 杞摼鎺

闄や簡纭摼鎺ヤ互澶栵紝杩樻湁涓绉嶇壒娈婃儏鍐点

鏂囦欢A鍜屾枃浠禕鐨刬node鍙风爜铏界劧涓嶄竴鏍凤紝浣嗘槸鏂囦欢A鐨勫唴瀹规槸鏂囦欢B鐨勮矾寰勩傝鍙栨枃浠禔鏃讹紝绯荤粺浼氳嚜鍔ㄥ皢璁块棶鑰呭鍚戞枃浠禕銆傚洜姝わ紝鏃犺鎵撳紑鍝竴涓枃浠讹紝鏈缁堣鍙栫殑閮芥槸鏂囦欢B銆傝繖鏃讹紝鏂囦欢A灏辩О涓烘枃浠禕鐨”杞摼鎺”锛坰oft link锛夋垨鑰”绗﹀彿閾炬帴锛坰ymbolic link锛夈

杩欐剰鍛崇潃锛屾枃浠禔渚濊禆浜庢枃浠禕鑰屽瓨鍦紝濡傛灉鍒犻櫎浜嗘枃浠禕锛屾墦寮鏂囦欢A灏变細鎶ラ敊锛”No such file or directory”銆傝繖鏄蒋閾炬帴涓庣‖閾炬帴鏈澶х殑涓嶅悓锛氭枃浠禔鎸囧悜鏂囦欢B鐨勬枃浠跺悕锛岃屼笉鏄枃浠禕鐨刬node鍙风爜锛屾枃浠禕鐨刬node”閾炬帴鏁”涓嶄細鍥犳鍙戠敓鍙樺寲銆

ln -s鍛戒护鍙互鍒涘缓杞摼鎺ャ
ln -s 婧愭枃鏂囦欢鎴栫洰褰 鐩爣鏂囦欢鎴栫洰褰

  1. inode鐨勭壒娈婁綔鐢

鐢变簬inode鍙风爜涓庢枃浠跺悕鍒嗙锛岃繖绉嶆満鍒跺鑷翠簡涓浜沀nix/Linux绯荤粺鐗规湁鐨勭幇璞°

銆銆1. 鏈夋椂锛屾枃浠跺悕鍖呭惈鐗规畩瀛楃锛屾棤娉曟甯稿垹闄ゃ傝繖鏃讹紝鐩存帴鍒犻櫎inode鑺傜偣锛屽氨鑳借捣鍒板垹闄ゆ枃浠剁殑浣滅敤銆

銆銆2. 绉诲姩鏂囦欢鎴栭噸鍛藉悕鏂囦欢锛屽彧鏄敼鍙樻枃浠跺悕锛屼笉褰卞搷inode鍙风爜銆

銆銆3. 鎵撳紑涓涓枃浠朵互鍚庯紝绯荤粺灏变互inode鍙风爜鏉ヨ瘑鍒繖涓枃浠讹紝涓嶅啀鑰冭檻鏂囦欢鍚嶃傚洜姝わ紝閫氬父鏉ヨ锛岀郴缁熸棤娉曚粠inode鍙风爜寰楃煡鏂囦欢鍚嶃

绗3鐐逛娇寰楄蒋浠舵洿鏂板彉寰楃畝鍗曪紝鍙互鍦ㄤ笉鍏抽棴杞欢鐨勬儏鍐典笅杩涜鏇存柊锛屼笉闇瑕侀噸鍚傚洜涓虹郴缁熼氳繃inode鍙风爜锛岃瘑鍒繍琛屼腑鐨勬枃浠讹紝涓嶉氳繃鏂囦欢鍚嶃傛洿鏂扮殑鏃跺欙紝鏂扮増鏂囦欢浠ュ悓鏍风殑鏂囦欢鍚嶏紝鐢熸垚涓涓柊鐨刬node锛屼笉浼氬奖鍝嶅埌杩愯涓殑鏂囦欢銆傜瓑鍒颁笅涓娆¤繍琛岃繖涓蒋浠剁殑鏃跺欙紝鏂囦欢鍚嶅氨鑷姩鎸囧悜鏂扮増鏂囦欢锛屾棫鐗堟枃浠剁殑inode鍒欒鍥炴敹銆

All posts

Other pages

鍙戣〃璇勮

鐢靛瓙閭欢鍦板潃涓嶄細琚叕寮銆 蹇呭~椤瑰凡鐢*鏍囨敞