Linux運維:CentOS6和7的區別


Liunx筆記:CentOS6和CentOS7的區別

漢克書維護者
在線流程圖軟件
Ago linux運維群: 93324526 筆者QQ:578843228


常用安裝包下載

yum install -y epel-release
yum -y install bash-completion
yum -y install net-tools
yum -y install iproute
yum -y install wget vim 
yum -y install lrzsz nmap tree dos2unix nc telnet
yum -y install openssl

一、 系統類型

1.1 sysvinit

1.	系統第一個進程(pid=1)為init
2.	init進程是所有進程的祖先,不可kill,
3.	大多數linux發行版的init系統是和systemV相兼容,被稱為sysvinit
4.	代表系統: C5  C6

應用場景:

用於服務器時代

優點:

sysvinit運行非常良好,概念簡單清晰。它主要依賴於shell腳本

缺點:

1.	按照一定順序執行-->啟動太慢。
2.	很容易hang住,fstab與nfs掛載問題。

未來的趨勢:

個人PC機和移動平台,需要便捷,快的系統。

1.2 Upstart技術

CentOS6采用了Upstart技術代替sysvinit進行引導。upstart對rc,sysinit腳本做了大量得優化,縮短了系統初始化時得啟動時間。但是C6為了簡便管理員得操作,upstart得很多特性並沒有凸顯或者直接不支持。因此再C6中的服務啟動腳本還是以原來sysv的形式提供,所以我們依然采用sysvinit的圖講解C6的系統初始化過程(initctl)
	一個應運而生的技術,卻因為競爭對手太強大,而被淘汰。
	代表體統:C6,Ubuntu14.
http://0pointer.de/blog/projects/why.html

1.3 Systemd技術

	新系統都會采用的技術(RedHat7,C7,Ubuntu15等)
	設計目標時克服sysvinit固有的缺點,提高系統的啟動速度。
	和sysvint兼容,降低遷移成本
	主要優點:並行啟動。
	pid為1的進程   /usr/lib/systemd/systemd
[root@aige ~]# ps -ef | head -2
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 20:39 ?        00:00:11 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

A,B,C,D四個任務有依賴關系

1.	init:總時間T1+T2+T3+T4+T5+T6+T7
2.	upstart:總時間T1+T2+T3,啟動速度加快,但是有依賴關系的服務還是必須先后啟動。
3.	system:總時間T,即使有依賴關系的服務,也能並發啟動。
並發啟動原理之一:解決socket依賴/端口依賴。
並發啟動原理之二:解決D-Bus依賴:采用了D-Bus作為程序之間的通信工具,類似消息隊列,可以緩存信息。
並發啟動原理之三:解決文件系統依賴:類似autofs機制。

1.2 CentOS7系統安裝。

地址:http://vault.centos.org/ #老版的系統
或者阿里雲鏡像。
鏡像名字解釋:CentOS-7-x86_64-DVD-1611.iso
CentOS-7:系統版本
x86_64:64位操作系統,並且從7以偶不再提供32位鏡像。
1611:2016年11月發表的版本
圖解安裝

二、具體區別

區別1:網卡名稱eth0和enp5s0

	傳統上,Linux的網絡接口名稱為eth0,eth1,但這些名稱並不一定符合實際的硬件插槽等,這可能會導致不同的網絡配置錯誤(例如,由無意的接口改名引起的禁止接口),基於MAC短地址的udev規則在虛擬化的環境中並不有用,這里的MAC短地址如端口數量一樣無償。
	C6/RHEL6引入了一致和可預測的網絡設備命名網絡接口的方法,這些特性可以唯一的確定網絡接口的名稱以使定位和區分設備更容易,並且在這樣一種方式下,無論是否重啟機器,過了多少時間,或者改變硬件,其名字都是持久不變的。然而,這種命名規則並不是默認在CeentOS//RHEL6上開啟的。
	從C77/RHEL7起,這種可遇見的命名規則變成了默認。根據這一個規則,接口名稱被自動基於固件,拓撲結構和位置信息來確定,現在即使添加或移除網絡設備,接口名稱仍然保持固定,而無需重新枚舉,和壞掉的硬件可以無縫替換。
	但是。先進的技術向我們屈服了。
CeentOS7修改網卡名稱為eth0:詳情,后期補充博客。
1.	在安裝系統的時候配置:修改內核選項,net.ifnames=0 biosdevname=0
2.	已經安裝的系統修改。

區別2:網絡配置相關命令

1.ip:yum -y install iproute
CeentOS7主推薦使用,ip、ss命令
2.ifconfig:yum -y install nnet-tools
3.setup:yum -y install ssetuptool   (廢棄命令)
    安裝完之后,發現這只是一個圖形工具,需要用到的網絡服務,防火牆,系統服務等需要另外再安裝。
    安裝好setup ttools工具之后。需要安裝組件有:
    系統服務:nesysv
    網絡服務:system-config-networkui
    防火牆配置。iptables
4.nnmtui:代替setup命令

區別3:主機名等配置文件。

1.修改主機名
hostname Aige -->臨時生效
編輯/etc/hostname -->主機名的配置文件變了。
hhostnamectl set-hostname Aige ##->方法2,本質還是改配置文件。
2.修改字符集
localectl set-locale LANG=zh_CN.UTF-8
編輯/etc/locale.conf
cat /etc/redhat-release #查看系統版本號
cat /etc/os-release   #所有支持systemd系統的統一發行版本名稱和版本號文件
2.1具體操作
[root@aige ~]# 
[root@aige ~]# hostnamectl status
   Static hostname: aige
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a8c2e32a13e04d2cb34985e01cd1aa52
           Boot ID: 5ce9c2ba6ad64adda044f4b83a848d91
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.el7.x86_64
      Architecture: x86-64
[root@aige ~]# cat /etc/locale.conf 
LANG="en_US.UTF-8"
[root@aige ~]# localectl --h
[root@aige ~]# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
[root@aige ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

區別4:兼容的/etc.rc.local

C7開始不默認支持rc.local了。如有需要,請自行添加權限。
# Please note that you must run 'chmod +x /etc/rc.local' to ensure
# that this script will be executed during boot.

區別5:運行級別Runlevel

Runlevel

[root@aige ~]# cat /etc/inittab 
# inittab is no longer used when using systemd.

當前啟動級別。

[root@aige ~]# systemctl get-default 
multi-user.target

設置啟動級別

[root@aige ~]# systemctl set-default multi-user.target

區別6 systemd一統天下

查看從前的runlived變成了什么樣。

ls -lh /usr/lib/systemd/system/runlevel*.target

所有可用的單元文件存放在/usr/lib/systemd/system/和/etc/system/system/目錄(后者優先級更高)

ll -h /etc/systemd/system/default.target


[root@aige ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Apr 21 19:33 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 21 19:33 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 21 19:33 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 21 19:33 /usr/lib/systemd/system/runlevel6.target -> reboot.target

ls /etc/systemd/system  系統 
ls /usr/lib/systemd/system  用戶

http://www.jinbuguo.com/systemd/systemd.service.html

區別7:管理服務

chkconfig
service
/etc/init.d/
systemctl:融合service和chkconfig的功能於一體,兼容sysv和LSB的啟動腳本,而且夠在進程啟動過程中更有效地引導加載服務。

sysvinit命令               systemctl命令                         備注
service crond start        systemctl start crond.service       啟動服務
service crond stop         systemctl stop crond.service        停止服務
service crond restart      systemctl restart crond.service     重啟服務
service crond reload       systemctl reload crond.service      當支持時,重新裝載配置文件而不中斷等待操作
service crond condrestart  systemctl condrestart crond.service 如果服務正在運行,那么重啟它
service crond status       systemctl status crond.service      查看服務運行狀態

chkconfig --list           systemctl list-unit-files           輸出在各個運行級別嚇服務的啟動和禁用情況
chkconfig crond on         systemctl enable crond.service      在下次啟動時或滿足其他觸發條件時設置服務為啟動
chkconfig crond off        systemctl disable crond.service     在下次啟動時或滿足其他觸發條件時設置服務為禁用
chkconfig --list crond     systemctl is-enabled crond.service  用來檢查一個服務在當前環境在被配置為啟動還是禁用
chkconfig --add crond      systemctl daemon-reload             當創建新服務文件或者變更設置時使用

開機自起查詢

systemctl list-unit-files
systemctl list-unit-files|grep enabled|wc -l
7.1推薦關閉服務
[root@aige ~]# systemctl list-unit-files | grep enabled
abrt-ccpp.service                           enabled       x
abrt-oops.service                           enabled       x
abrt-vmcore.service                         enabled       x
abrt-xorg.service                           enabled       x
abrtd.service                               enabled       x # 調試相關服務
auditd.service                              enabled       x # selinux 相關
crond.service                               enabled         # 定時任務
dbus-org.fedoraproject.FirewallD1.service   enabled         # d-bus相關,系統服務
dbus-org.freedesktop.NetworkManager.service enabled         # d-bus相關,系統服務
dbus-org.freedesktop.nm-dispatcher.service  enabled         # d-bus相關,系統服務
firewalld.service                           enabled       x # 防火牆
getty@.service                              enabled         # tty窗口
irqbalance.service                          enabled         # 多核cpu調度
microcode.service                           enabled       x # intel的CPU會提供一個外掛的微指令集提供系統運行
NetworkManager-dispatcher.service           enabled         # 網絡相關
NetworkManager.service                      enabled         # 網絡相關
postfix.service                             enabled       x # 系統郵件
rsyslog.service                             enabled         # 系統日志
sshd.service                                enabled         # ssh服務
systemd-readahead-collect.service           enabled         # 系統服務
systemd-readahead-drop.service              enabled         # 系統服務
systemd-readahead-replay.service            enabled         # 系統服務
tuned.service                               enabled         # 服務器能耗管理
default.target                              enabled       
multi-user.target                           enabled       
remote-fs.target                            enabled       

查看系統優化

systemd-analyze time
systemd-analyze blame
systemd-analyze plot>bootime.svg # 導出圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM