iT邦幫忙

0

請問各位大大 , 若分割給/var全部空間都用完的話,會嚴重影響到網站主機的運作嗎 ?

  • 分享至 

  • xImage

請問各位大大 , 若分割給/var全部空間都用完的話,會嚴重影響到網站主機的運作嗎 ? 也就是說Avail值為0 , Use%值為100% , 若我重開機的話 , var的Use%值是不是會變動 , 例如 , Use%值會降低於100% , Avail值則昇高呢 ? 還是說 , 要用其它什麼方法處理比較恰當 ? 大感恩 !

James iT邦大師 6 級 ‧ 2009-07-20 15:54:44 檢舉
空間不足的話還是要增購硬碟最實在,買硬碟前要先評估是不是有可以刪除或移到其它可攜式媒體的資料,資料成長的速度也要加以評估,如果成長慢當然可以刪一些東西掉撐一下,如果成長很快就要做長遠的規劃評估增購何種設備。
在老舊的機器、而又是固定要跑的服務時,
並不見得買硬碟可以直接解決,
手邊有老舊的 Sun 在跑 Mail 服務,
最早就已把 /var/mail 掛成一個獨立的分割區,
而 /var 畫得太小,
就把 mqueue, procmail(存其 log及過濾出來的信件),
pop3(使用者收信時,會移成另個暫存檔處理用),
都改放到 /export/home 底下,
這樣的做法可以撐得蠻久。
James iT邦大師 6 級 ‧ 2009-07-22 08:57:50 檢舉
沒錯不同的狀況有不同的處理方式,發問者提供的資訊實在不夠多
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
48
逮丸逮丸
iT邦大師 1 級 ‧ 2009-07-20 10:03:45
最佳解答

一定會影響主機運作,
但要看一些服務,其檔案若是放在 /var 的 partition 中,
就一定受影響,
若早就是指到其他 partition 的話,
就不受影響。
例如:
/var/log 裡的 log 檔沒得記錄,到時這一段時間則無記錄可尋。
/var/lock 或 /var/run 裡面的檔案不能產生,某些服務就無法啟動。
套件安裝是用 /var 的空間,則會無法進行安裝的動作。
會用到 /var/spool 裡的服務也受影響。

怎麼解決?
清掉 log 檔。
把會一直累積檔案的服務,將其目錄改到其他 partition,
再掛回來,或者用 symbol link 指過去。
例如:若沒有其他新的 partition,
而 /var/spool/mail 的內容一直成長,
擬移到較大的 home partition,
就將 /var/spool/mail 的內容 移到 /home/mail,
然後在 /var/spool 裡 ln -s /home/mail 做 symbol link。

自己規畫 partition , /var 大約畫 2G 左右,
至少在安裝套件時所要用的暫時空間,
都相當夠用。
如果要用特別做什麼服務、量又大的的話,
就把所會用到的目錄,
改放在額外的分割,再從 /var 裡 mount 過來。
若沒有額外的分割區可放,
就只好改移到其他分割區的目錄,
再指過去。

22
mistyman
iT邦新手 4 級 ‧ 2009-07-20 10:02:30

若/var磁碟空間己滿,如果有資料要寫到/var時會有影響
可以將/var目錄下需要磁碟空間的目錄link到其他目錄

20
cmwang
iT邦大師 1 級 ‧ 2009-07-20 10:04:54

*nix系統的log檔通常放在/var下,如果/var滿了最明顯的後果就是須要扒糞時找不到標的物可以扒,治標的方式是直接把那堆log檔清掉(但一旦須要扒糞時就老天保佑了),治本的辦法是透過logrotate等工具定期把log檔分段以方便後續的壓縮/搬移等工作....

18
richardsuma
iT邦大師 1 級 ‧ 2009-07-20 10:06:12

如果你的網路主機使用的 temp 空間是建立在 /var的目錄底下,就會有很大的影響,
可以找出 /var底下哪一個目錄使用最多, 然後將 主機內有空餘的空間如:/usr 或
其他空間。

  1. 建立一個目錄如: /usr/tmp。
  2. 使用連結方式: ln -s /usr/tmp /var/tmp。
    這樣就可以擴充 /var/tmp 的空間了。
12
jiahuey
iT邦新手 1 級 ‧ 2009-07-24 11:52:26

樓上幾位先進對如何有效、且有效率的使用 /var 的空間提出各自的經驗。
追蹤真正造成 file system full 的原因,適當的採取對應的措施才能避免問題再次發生。

/var 底下通常最容易累積檔案(或是出現超大檔案)的目錄是 /var/log 以及 /var/spool/mail。twtw 大大所說的方式可以從檔案系統管理的角度很好的解決未來可能再發生的機率,尤其是對於 mail server 來說。

如果只是單純出現在 /var/log,比如說:一個繁忙的 apache server。
logrotate 可以設定以檔案大小或是定時的方式更新所有的 log 檔(或是可以針對異常增長的 log 作處理),並且將備份的檔案再作壓縮,以得到更有效率的儲存方式。同時也可以在 crontab 裡排程定時將檔案移到另外的 file system。

這裡也提供一點自己的經驗:
FreeBSD: 當 file system 空間被塞滿,出現 Use% 100% (甚至超過 100%。不用懷疑,真的會!),除了把檔案移除或移走,還必須將造成 file sysetm 滿溢的 daemon 或是 process shutdown 才能更新 Use% 的狀態。(重新開機已經達到了這個目的,只要檔案已經被刪除,file system usage 就會被更新)否則 syslog 會持續產生 file system full 的訊息,這樣又會持續重複要寫入到 /var 的動作,成為一個惡性循環。

Linux:移除過度佔用 file system 的檔案後,通常會很快由系統自行更新狀態,不一定需要重新啟動 daemon 或是 process(也可以執行 updatedb 即時更新系統的狀態),也沒有一定要重新開機的必需性。

我要發表回答

立即登入回答