Linux內核模塊管理

Linux內核模塊管理 vim

目錄: centos

內核模塊路徑 模塊化

查看已加載的內核 網站

加載與卸載內核模塊 centos7

修改內核參數 spa

Linux內核採用的是模塊化技術,這樣的設計使得系統內核能夠保持最小化,同時確保了內核的可擴展性與可維護性,模塊化設計容許咱們在須要時纔將模塊加載至內核,實現動態內核調整。本文重點關注方法與思路,具體實現能夠參考kernel-doc文檔。 設計

2.9.1 內核模塊存放位置 code

Linux內核模塊文件的命名方式一般爲<模塊名稱.ko>,CentOS 6.3系統的內核模塊被集中存放在/lib/modules/`uname -r`/[1]目錄下(uname -r得到的信息爲當前內核的版本號)。下面經過幾個實例說明對內核模塊的基本操做。 blog

2.9.2 查看已加載內核模塊 進程

lsmod命令用來顯示當前Linux內核模塊狀態,不是使用任何參數會顯示當前已經加載的全部內核模塊。輸出的三列信息分別爲模塊名稱、佔用內存大小、是否在被使用,若是第三列爲0則該模塊能夠隨時卸載,非0則沒法執行modprobe刪除模塊。

 
  1. [root@centos6 ~]# lsmod 
  2. Module                  Size  Used by 
  3. bridge                 79950   0 
  4. stp                     2173   1 bridge 
  5. llc                     5642    2 bridge,stp 
  6. fuse                   66891   2 
  7. autofs4                27212    3 
  8. sunrpc                263516   1 
  9. ipt_REJECT              2351    2 
  10. nf_conntrack_ipv4       9506     2 
  11. nf_defrag_ipv4          1483     1 nf_conntrack_ipv4 
  12. iptable_filter           2793    1 
  13. ip_tables              17831    1 iptable_filter 
  14. (部分輸出省略) 

2.9.3 加載與卸載內核模塊

modprobe命令能夠動態加載與卸載內核模塊:

 
  1. [root@centos6 ~]# modprobe ip_vs     #動態加載ip_vs模塊 
  2. [root@centos7 ~]# lsmod |grep ip_vs  #查看模塊是否加載成功 
  3. [root@centos7 ~]# modprobe -r ip_vs  #動態卸載ip_vs模塊 

modinfo命令能夠查看內核模塊信息:

 
  1. [root@centos7 ~]# modinfo ip_vs 
  2. filename:       /lib/modules/2.6.32-279.el6.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko 
  3. license:        GPL 
  4. srcversion:     01386EABC060B63920E181B 
  5. depends:        ipv6,libcrc32c 
  6. vermagic:       2.6.32-279.el6.x86_64 SMP mod_unload modversions 

經過上述modprobe方式加載的內核模塊僅在當前有效,計算機重啓後並不會再次加載該模塊,若是但願系統開機自動掛載內核模塊則須要將modprobe命令寫入/etc/rc.sysinit文件中:

 
  1. [root@centos7 ~]# echo 「modprobe ip_vs」 >> /etc/rc.sysinit 

當內核模塊再也不須要時能夠經過將/etc/rc.sysinit文件中的對應modprobe命令刪除,但須要重啓計算機才生效。此時,能夠經過modprobe -r命令來馬上刪除內核模塊:

 
  1. [root@centos6 ~]# modprobe -r ip_vs 

2.9.4 修改內核參數

1.       臨時調整內核參數

Linux內核參數隨着系統的啓動會被寫入內存中,咱們能夠直接修改/proc目錄下的大量文件來調整內核參數,而且這種調整是馬上生效的,下面咱們來看幾個實例。

開啓內核路由轉發功能(經過01設置開關)

 
  1. [root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward 

開啓內核路由轉發功能:

 
  1. [root@centos6 ~]# echo "1" > echo "1" >t /proc/sys/net/ipv4/icmp_echo_ignore_all 

調整全部進程總共能夠打開的文件數量(當大量的用戶訪問網站資源時可能會因該數字太小而致使錯誤):

 
  1. [root@centos6 ~]# echo "108248" >/proc/sys/fs/file-max 

2.       永久調整內核參數

能夠經過man proc能夠得到大量關於內核參數的描述信息。但以上經過直接修改/proc相關文件的方式在系統重啓後將再也不有效,若是但願設置參數並永久生效能夠修改/etc/sysctl.conf文件,文件格式爲選項=值,咱們經過vim修改該文件將前面3個案例參數設置爲永久有效:

 
  1. [root@centos6 ~]# vim /etc/sysctl.conf 
  2. net.ipv4.ip_forward = 1 
  3. net.ipv4.icmp_echo_ignore_all = 1 
  4. fs.file-max = 108248 

注意,經過sysctl.conf文件修改的內核參數不會馬上生效,修改完成後使用sysctl -p命令可使這些設置馬上生效。

相關文章
相關標籤/搜索