linux高可用
① linux下ip addr和ifconfig增刪查虛擬ip
使用 虛擬ip最多的場景可能是雙機 ,往往結合著keepalived使用。其實沒有雙機軟體也可以使用虛擬ip,下面介紹兩種方法ip addr和ifconfig進行增刪查虛擬ip。
增加虛擬ip :
ip addr add ip/netmask dev 網口名稱,比如ip addr add 192.168.88.0/24 dev eth0
查看虛擬ip :
ip addr show device_name或ip addr | grep eth0
ip addr =ip a= ip add list 查看網卡的ip和mac等,即使網卡處於down狀態,也能顯示者雀出網卡狀態,但是ifconfig查看就看不到。
刪除虛擬ip:
ip addr del ip/netmask dev 網口名稱,比如ip addr del 192.168.88.0/24 dev eth0
清空指定網卡的所有ip:
ip addr flush dev 介面
ip addr 操作時的注意事項:
說明:網卡配置的ip一般為Primary ip,虛擬ip一般為Secondary ip,當刪除Primary ip時Secondary ip也有可能同時被刪除。
先查看ipv4或ipv6相應網卡開啟提升參數promote_secondaries為1,當Primary ip被刪除後,它的第1個Secondary ip將繼承為Primary ip。
# cat /etc/sysctl.conf | grep promote_secondaries
net.ipv4.conf.eth0.promote_secondaries=1
默認不開啟,查不到結果則表明未開啟。空搜
Secondary ip和Primary ip標注如下
[root@localhost ~]# ip addr show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ff
# Primary ip
inet 172.16.0.230/24 brd 172.16.0.255 scope global eth0
inet 10.1.1.230/24 scope global eth0
# Secondary ip
inet 10.1.1.231/24 scope global secondary eth0
在linux中在一個網卡上配置的同一個網段的ip有Primary IP和Secondary address之分,如果不是同一個網段的ip總有一個是Primary IP,一條鏈上的吊鏈結構中上面的那條主鏈中的IP是Primary IP,斗嫌歷Secondary address是主鏈結點的子鏈結點中的IP,一 旦主鏈上一個節點被刪除了,那麼它的子鏈也將不復存在,隨之被刪除。
可以通過調整一個參數來實現,當一個primary ip被刪除時,如果它有secondary ip的話,那麼它的第1個secondary地址(長子)成為primary地址,這樣就顯得很合理了,要不然在刪除 primary地址的時候,如果有程序用secondary地址,要麼延遲刪除,要麼程序崩潰。
開啟的方法(主機重啟後仍然生效的)
echo "net.ipv4.conf.eth0.promote_secondaries=1" >>/etc/sysctl.conf
ifconfig eth1:1 192.168.5.10/24 up:起別名
ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up
ifconfig eth1:1 192.168.5.10/24 down : 刪別名
ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 down
ifconfig eth1 up :啟用eth1網卡
ifconfig eth1 down : 禁用eth1網卡,這種禁用是從數據鏈路層斷掉,但是網路層ip還在,有時候能ping 通,大概率是緩存表沒有更新
ifdown eth0 : 禁用網卡,刪除了網路層ip
二者本質上沒有什麼區別,只是表述方式不同。如果你非常理解網路協議的原理以及網路的分層架構那麼我想你就不會有這個問題,實際上 每一個網卡設備都有一個mac地址 , 但是卻可以有多個網路層地址 ,比如IP地址,然而這個事實無法很好地像用戶提供操作介面,所以就引出了ip別名(IP aliases)和輔助ip(secondary IP addresses)的概念。其實很容易理解這個事實,按照分層的思想,下層總是為上層服務,也就是為上層提供舞台,上層利用下層的服務,而不必讓下層知道自己的情況,如果一個擁有合理mac地址的網卡沒有配置網路層地址(比如IP地址)這件事合理的話,那麼為這個設備配置多個IP地址也是合理的,好比一個ip可以對應多個應用層埠一樣,也就是說,下層對上層總是一對多的關系,在分層架構中這種關系是合理的。
比如一台機器上運行著一個代理伺服器或者負載均衡服務,代理伺服器或者負載均衡服務和主伺服器要監聽相同的埠,那麼就可以用secondary ip來解決,只要需要在同一網段監聽同一個埠的應用都是吊鏈中子鏈存在的原因,因此可以說,主鏈對外部或者說對下面鏈路層虛擬了多塊網卡, 而子鏈向上層虛擬了多台機器,配置了吊鏈結構的linux主機如果說只有一塊網卡,那麼外部會認為它有多塊網卡,對於內部,應用層會認為彼此在不同的主機 上,這就是效果。
添加地址可以通過2個用戶空間程序搞定,一個是ifconfig,另一個是ip addr add,ifconfig是基於ioctl進行添加地址的,而ip是基於netlink進行添加地址的,不管哪一種方式都可以達到目的。 但為何用ip addr add添加的ip地址用ifconfig看不到,而ifconfig設置的地址ip addr show卻是可以看到?這個問題先放一放。
ip addr增加的虛擬ip在物理主機或虛擬機重啟後失效。
方法1:把命令加到/etc/rc.local裡面
ip addr add 192.168.26.74/32 dev eth1
方法2:高可用雙機倒換後進行虛擬ip的增加
方法3:在/etc/sysconfig/network-scripts添加網卡名字,比如ifcfg-eth0:0,DEVICE=eth0:1 ---->子介面名
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.109.108
NETMASK=255.255.255.0
ip addr 操作ip時需要注意
ip addr和ifconfig的區別
② Linux主要應用在哪些方面
主要用於企業伺服器端,下面詳細介紹Linux有哪些崗位、主要的工作內容及職業發展,希望對你有所幫助。
1) Linux運維崗位及工作內容
互聯網Linux運維工程師是一個融合多學科(網路、系統、開發、資料庫、安全、存儲等)的綜合性技術崗位,甚至還需要溝通、為人處世、培訓、銷售、管理等非技術能力,這給運維工程師提供了一個廣闊的發展空間。
2) Linux運維工程師崗位職責
一般從企業入門到中級Linux運維工程師的工作大致有:挑選IDC機房及帶寬、購買物理伺服器或雲服務、購買及使用CDN服務、搭建部署程序開發及用戶的訪問系統環境(例如:網站運行環境)、對數據進行備份及恢復、處理網站運行中的各種故障(例如:硬體故障、軟體故障、服務故障、數據損壞及丟失等)、對網站的故障進行監控、解決網站運行的潛在安全問題、開發自動化腳本程序提高工作效率、規劃網站架構、程序發布流程和規范,制定運維工作制度和規范、配合開發人員部署及調試產品研發需要的測試環境、代碼發布等工作需求,公司如果較小可能還會兼職網管、網路工程師、資料庫管理員、安全工程師、技術支持等職責。
涉及到的Linux平台上的運維工具有:Linux系統,Linux基礎命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,網路基礎,Shell/Python開發基礎等,除此之外還可能涉及到交換機、路由器、存儲、安全、開發等知識。
運維工程師還包括一些低端的崗位,例:網路管理員、監控運維、IDC運維,值班運維
職業發展方向:Linux運維工程師、系統架構師、資料庫工程師、運維開發工程師、系統網路安全工程師、運維經理、運維總監
3) Linux中級運維工程師應用軟體階段。
Linux系統,Linux基礎命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,網路基礎,Shell/Python開發基礎
4)Linux運維架構師崗位職責
運維架構師是運維工程師的高級階段,並沒有明確的崗位界限區分,運維架構師一般來說是除了對運維工程師應用的開源工具熟練掌握之外,更多的是用思想來運維了,即DevOps的落地,各種企業運行過程中的解決方案提出和執行,例如:根據公司的現狀可以設計各類運維解決方案的能力:
1、自動化代碼上線(SVN/GIT+Jenkins+MVN)解決方案;
2、雲計算部署架構及Docker微服務架構方案;
3、服務自動化擴容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10萬並發的網站架構、秒殺系統的架構及解決發你個案;
5、多IDC機房互聯方案、全網數據備份解決方案、賬號統一認證方案;
6、資料庫、存儲及各重要服務節點的集群和高可用方案。
7、各網路服務的極端優化方案、服務解耦/拆分。
8、運維流程、制度、規范等的建設和推行。
9、溝通能力、培訓能力、項目管理、業務需求分析及落地執行力等。
這里僅舉幾個例子,實際工作中會有更多,運維架構師的工作,其實就是解決企業中的用戶訪問量不斷增大帶來的痛點,最終達到高效、優質的為客戶提供網站及業務服務。
總的來說:Linux運維架構師更多的是根據企業日益增長的訪問量需求,利用若干運維工具組合加上經驗思想,形成解決業務需求方案的階段,當然也不排除對運維工具進行二次開發以及可視化展示運維數據的階段(開發軟體平台),這個階段涉及的工具會非常多,幾乎市面好用的開源工具都在備選之列,在一線城市互聯網公司的薪資范圍15000-50000/月。
職業方向:高級資料庫工程師、運維開發工程師、運維經理、運維總監、技術總監
運維架構師:將多個工具組合,加上思想經驗,形成方案,用思想和經驗賺錢的階段。
技術的提升僅是量的積累,思想的提升才是質的飛躍!——老男孩
5)資料庫運維工程師
眾所周知,數據幾乎是所有企業的生命線,所以資料庫工程師的地位和薪水一般會比普通運維工程師高一些,主要工作內容就是保證資料庫數據的安全以及高效地為用戶提供各種服務。工作內容主要有:資料庫環境搭建、資料庫優化、資料庫
③ Linux系統 CentOS 7怎麼搭建集群
CentOS 7下怎麼搭建高可用集群。高可用集群是指以減少服務中斷時間為目的的伺服器集群技術。它通過保護用戶的業務程序對外不間斷提供的服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度。那麼新的centos下怎麼來搭建高可用集群。環境:本文以兩台機器實現雙集熱備高可用集群,主機名node1的IP為192.168.122.168 ,主機名node2的IP為192.168.122.169 。
一、安裝集群軟體必須軟體pcs,pacemaker,corosync,fence-agents-all,如果需要配置相關服務,也要安裝對應的軟體
二、配置防火牆
1、禁止防火牆和selinux
修改/etc/sysconfig/selinux確保SELINUX=disabled,然後執行setenforce 0或者reboot伺服器以生效
2、設置防火牆規則
三、各節點之間主機名互相解析分別修改2台主機名分別為node1和node2,在centos 7中直接修改/etc/hostname加入本機主機名和主機表,然後重啟網路服務即可。
配置2台主機的主機表,在/etc/hosts中加入
四、各節點之間時間同步在node1和node2分別進行時間同步,可以使用ntp實現。
五、各節點之間配置ssh的無密碼密鑰訪問。下面的操作需要在各個節點上操作。
兩台主機都要互相可以通信,所以兩台主機都得互相生成密鑰和復制公鑰,相互的節點上的hosts文件是都要解析對方的主機名, 192.168.122.168 node1 192.168.122.169 node2
六、通過pacemaker來管理高可用集群
1、創建集群用戶
為了有利於各節點之間通信和配置集群,在每個節點上創建一個hacluster的用戶,各個節點上的密碼必須是同一個。
④ linux有什麼用
1、linux是開放源代碼的操作系統,它的每一個操作,你都能夠充分了解,並且可以按照你的想法加以修改,這對一個計算機學生或者計算機愛好者來說,無疑是有很大幫助的,它可以讓你知道系統是怎樣工作。
2、 其次是Linux系統是由C語言寫成的,對深入了解和學習C語言的同學無疑是最適合的環境,Linux下使用VI編輯器,讓你編碼顯得高大上,同時VI也是一個讓人愛不釋手的好工具;Linux里強大的GCC套件,讓你隨心所欲編譯C程序,出色的GDB調試工具,直接讓你領悟C語言的原理。
3、據說世界上百分九十以上的伺服器都是運行在類Linux系統上,也就是說你日常生活中所有的網路服務,其實都是基於Linux系統的,學好了Linux,你就可以通過管理伺服器或者破壞伺服器。
(4)linux高可用擴展閱讀
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。
它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
⑤ 簡述Linux有技術特點 急
一、Linux伺服器版本的關鍵技術特點 1.中文平台 以前的中文平台在X Window下著重於截取X的函數或通訊協議,紅旗Linux 2.0在紅旗Linux1.1.2的基礎上有了重大突破,完全在國際化的基礎上架構了全新的中文顯示技術,沒有對X的函數及通信協議作任何修改就完全能夠顯示漢字,支持TrueType顯示,並且支持TrueType的無級縮放與字型變換等。 長期以來Linux的中文輸入處於非常混亂的局面,其實在X Window上很早就有一套國際規范來解決X上的輸入問題,這就是XIM。Rfinput是紅旗Linux利用Imdkit開發的遵循XIM的輸入法,她支持智能ABC、GBK拼音、區位、鄭碼,以及在香港很有聲望的九方輸入法,並可以方便地對它進行擴充。 紅旗Linux伺服器版支持三種語言,即簡體中文、繁體中文和英文,用戶可自由在三種語言之間進行切換。 2.日誌文件系統 盡管Linux可以支持種類繁多的文件系統,但是幾乎所有的Linux發行版都用ext2作為默認的文件系統。ext2在寫入文件內容的同時並沒有寫入文件的meta-data和文件有關的信息,如果在寫入文件內容之後但在寫入文件的meta-data之前,突然斷電,文件系統就會處於不一致的狀態。在一個需要大量文件操作的系統中,出現這種情況會導致很嚴重的後果。重新啟動的時候,Linux會運行一個叫做「fsck」(file system check)的程序,掃描整個文件系統。修復不了是經常的事。如果文件系統很大,fsck掃描要費很長時間。在一個有數十億個文件的計算機上,fsck可能要運行10個小時以上。在這段時間內,系統是不可用的。 日誌文件系統可以幫助解決這個問題。目前正在開發的有三種日誌文件系統:ReiserFS、ext3、jfs,其中已經完成且應用較多的是ReiserFS文件系統,一直被用在SGI的高端Unix上面。據說在Linux內核2.4.0以上的版本可能將採用ReiserFS作為它的文件系統。當前的ReiserFS只能在Intel結構體繫上使用,支持其他體系結構的版本正在積極開發中。 ReiserFS文件系統與ext2相比有很多特點: (1)搜尋方式 ReiserFS是基於平衡樹的文件系統結構,尤其對於大量文件的巨型文件系統,如伺服器上的文件系統,搜索速度要比ext2快;ext2使用局部的二分查找法,綜合性能比不上ReiserFS。 (2)空間分配和利用情況 ReiserFS里的目錄是完全動態分配的,因此不存在ext2中常見的無法回收巨型目錄佔用的磁碟空間的情況。ReiserFS里小文件(<4kB)可以直接存儲進樹,小文件讀取和寫入的速度更快。 (3)先進的日誌機制 ReiserFS有先進的日誌(Journaling/logging)機制,在系統意外崩潰的時候,未完成的文件操作不會影響到整個文件系統結構的完整性。對於較大型的伺服器文件系統,ext2「文件系統檢查」可能要持續好幾個小時。在日誌的幫助下,每個對數據結構的改變都被記錄下來,日誌機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬碟。在系統突然崩潰後,下次啟動只需幾秒鍾就能恢復成一個完整的系統。 (4)支持海量磁碟和優秀的綜合性能 ReiserFS的出現,使Linux擁有了像Irix/AIX那樣的高檔商用Unix才有的高級文件系統,可輕松管理上百GB的文件系統。 ReiserFS一個最受人批評的缺點是每升級一個版本,都將要將磁碟重新格式化一次,這個缺點也正在改進中。 3.伺服器集群(Cluster) Cluster是將兩個(或更多)系統(節點)協調起來一起工作,提供相同服務或實現相同目的的一種計算機機群;在外面看來,整個像一個系統一樣,這樣可用來提高服務的穩定性和/或核心網路服務的性能。Cluster已經發展多年,但原來都需要專業的軟/硬體設備才能實現,只有少數公司才能用得起。隨著Linux的流行,出現了許多基於Linux、基於PC的Cluster解決方案,使更多的人有機會構建自己的Cluster,而且這些基於Linux的軟體大多都是遵循GPL協議的。 許多自由軟體的程序員在Linux集群技術方面作了許多卓越的工作,使Linux具有強大的集群能力。而其中引以自豪的是LVS(Linux Virtual Server)項目組,負責人是中國人—張文嵩,他們的成果已被廣為接受。紅旗Linux伺服器版2.0整合了這些技術成果,將其成功的引進到紅旗Linux中,為用戶提供了這種Linux虛擬伺服器的解決方案。 (1)集群技術的分類 ①基於雙機系統的集群 這種方式的特點是利用硬體的方式來提高系統的高可用性,嚴格地講還不能稱為真正意義的集群,實際上是兩台(或更多台)計算機通過一定方式互相監聽,實現熱備份。當其中主節點出現問題時,備用機能夠自動立即接替工作,使用戶感覺不出停機。在主節點恢復正常之後,備用機又會把工作還給主節點。 ②基於負載均衡(Load Balance)的集群 Load Balance應用在Web Server上比較多。用戶訪問一個地址,但實際上後台有若乾颱伺服器在提供服務。而當服務請求達到飽和時,還可以很容易地再添加新的節點而不用停掉整個Cluster,實現所謂的「熱插拔」。而且,Cluster還會查詢真實節點的情況,當某台真實節點沒有響應時,就不再把任務分配到那裡,直到這台節點恢復正常。
⑥ 淺談如何學習linux
一.為什麼要學linux?
當然最重要是愛好和興趣!如果你這種必要學,或者根本不喜歡,請不要浪費時間,你學也學不好!
二.起步
你應該為自己創造一個學習linux的環境--在電腦上裝一個linux或unix
如何選擇版本:北美用redhat,歐洲用SuSE,桌面mandrake較多,而debian是技術最先進的linux開發人員中用debian的最多,其次是redhat,從全球linux各應用領域市場份額來看無疑redhat是最多的,此外還有很多出名的發行版本,不再列舉。
對於初學linux的人來說,我建議是使用redhat,原因如下:
1)現在很多書都是以redhat為例講的,為了與書本協調一致
2)周圍的人都用redhat,交流比較方便
3)redhat應用范圍廣,有典型性和代表性
4)它易於使用和安裝,我們沒有必要把時間浪費在「裝系統」上而應集中精力學習最有用的東西。
【注】現在覺得RH很死板,AS,ES等用在伺服器上或許不錯,Personal desktop用mandrake,debian,suse都不錯,筆者現在用Mandrake,因為她長得漂亮:)
如果你並不打算深入學習linux,而是有諸如適應北京市政府辦公平台遷移到linux上這種需要,那麼中軟,紅旗等中文linux是不錯的選擇
我強烈建議:自己親自動手把linux裝到你的硬碟上,你必須學會獨立安裝linux系統的技能,對於現在的版本來說,其實跟裝WinXP一樣簡單
從此現在開始,請不要以windows的工作方式來考慮問題,應該嘗試挖掘linux身上的「天才unix」的氣質。