CentOS 7.X 系統安裝及優化
1.centos的演變
1.1啟動流程sysvinit
序列啟動:一次一個,一個一個啟動
並行啟動:全部的一起啟動
init優點
執行非常良好。主要依賴於shell指令碼
init缺點
1、啟動慢
2、容易夯住,fstab與nfs掛載問題
1.2upstart 技術
使用的版本:
centos6
ubuntu14
1.3systemd技術
克服init固有缺點,提高系統的啟動速度
降低遷移成本
-
三種啟動技術對比
-
並行啟動三大原理:
1、解決socket 依賴/埠依賴
socket 網路套接字檔案
2、解決D-Bus
依賴:採用了D-Bus 為程式之間的通訊工具,類似訊息佇列,可以快取資訊
3、解決檔案系統依賴、類似autofs機制
-
安裝centos7系統
-
虛擬機器選擇
-
磁碟空間儘量大一些
-
系統安裝
1)開機進入安裝
2)按下TAB鍵
新增核心引數 讓網絡卡名稱變為eth
空格 輸入 net.ifnames=0 biosdevname=0 然後回車
3)選擇語言
4) 設定網路連線和主機名
5)注意勾選開機自啟動
6) 設定ip地址
同樣的方式將另外 一塊網絡卡配置好
7) 修改主機名
8)選擇安裝的環境,選擇最小化安裝。
注意勾選依賴包
9)磁碟分割槽為自定義分割槽。
選擇/boot掛載點的大小。這裡設定為1g
新增swap掛載點
注意選擇都為標準分割槽型別,直接寫到磁碟
新增根分割槽後選擇完成
關閉密碼保護
選擇關閉
關閉KDUMP功能
開始安裝,注意為469個包
安裝的過程中設定root的密碼。
-
安裝完成後的優化
檢視系統版本
[root@CentOS7 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
修改yum源,base源
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2573 100 2573 0 0 2940 0 --:--:-- --:--:-- --:--:-- 2940
epel源
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1084 100 1084 0 0 915 0 0:00:01 0:00:01 --:--:-- 916
安裝軟體
yum install vim wget bash-completion lrzsz nmap nc tree htop iftop net-tools -y
bash-completion 補全命令引數的包
-
centos7 與centos 6的區別
-
解決更換網絡卡後名稱變更的問題
-
更改名稱的方法
修改CentOS7網絡卡名稱為傳統名稱eth0格式http://oldboy.blog.51cto.com/2561410/1722101
-
nmtui
centos7 上管理網路的圖形化工具
-
主機名配置檔案的區別
臨時 hostname
永久 /etc/hostname
[root@CentOS7 ~]# cat /etc/hostname CentOS7
一步到位
[root@CentOS7 ~]# hostnamectl Static hostname: CentOS7 Icon name: computer-vm Chassis: vm Machine ID: 4ab1c20b25f64a38a7197b8453b04b2c Boot ID: abd0a393540b4788bc1e571b413b33c4 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64
修改主機名
[root@CentOS7 ~]# hostnamectl set-hostname clsn
-
字符集
臨時
[root@clsn ~]# echo $LANG zh_CN.UTF-
永久
[root@clsn ~]# cat /etc/locale.conf LANG="zh_CN.UTF-8"
一步到位
[root@clsn ~]# localectl System Locale: LANG=zh_CN.UTF-8 VC Keymap: cn X11 Layout: cn
-
檢視系統版本號
-
[root@clsn bin]# 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"
-
相容的rc.local
-
cat /etc/rc.local # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot.
想要使用rc.local要給他可執行許可權
[root@clsn bin]# chmod +x /etc/rc.d/rc.local [root@clsn bin]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 11月 7 2016 /etc/rc.d/rc.local
-
執行級別Runlevel
之前的檢視執行級別的方法依舊使用
[root@clsn init.d]# runlevel N 3
原執行級別檔案
[root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 11月 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 11月 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target
7中設定執行級別
root@clsn init.d]# systemctl get-default multi-user.target systemctl get-default #檢視執行級別
示例
[root@clsn ~]# systemctl get-default multi-user.target [root@clsn ~]# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
執行級別的變更
[root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 11月 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 11月 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target
-
systemd一統天下
系統啟動檔案的目錄
[root@clsn init.d]# ls /usr/lib/systemd/system
啟動命令示例
[root@clsn init.d]# cat /usr/lib/systemd/system/crond.service [Unit] Description=Command Scheduler After=auditd.service systemd-user-sessions.service time-sync.target [Service] EnvironmentFile=/etc/sysconfig/crond ExecStart=/usr/sbin/crond -n $CRONDARGS ExecReload=/bin/kill -HUP $MAINPID KillMode=process [Install] WantedBy=multi-user.target
語法格式http://www.jinbuguo.com/systemd/systemd.service.html
-
管理服務
關閉防火牆服務及開機自啟動
systemctl stop postfix.service systemctl disable postfix.service
關閉防火牆詳細過程
[root@clsn ~]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@clsn ~]# systemctl stop firewalld.service [root@clsn ~]# systemctl status firewalld.service
systemctl:融合service和chkconfig的功能於一體,相容SysV和LSB的啟動指令碼,而且夠在程序啟動過程中更有效地引導載入服務。。
-
命令對比
systemctl start crond.service和systemctl start crond效果一樣。
-
開機時間優化
systemd-analyze time systemd-analyze blame systemd-analyze plot >bootime.avg
開機啟動時間
[root@clsn system]# systemd-analyze time Startup finished in 387ms (kernel) + 1.406s (initrd) + 31.831s (userspace) = 33.626s
檢視具體的使用時間
[root@clsn system]# systemd-analyze blame 10.812s sshd-keygen.service 10.758s abrt-ccpp.service 6.395s chronyd.service ……
生產圖表
[root@clsn tmp]# systemd-analyze plot >bootime.svg [root@clsn tmp]# sz bootime.svg
-
開機啟動項優化
-
[root@kickstart ~]# systemctl list-unit-files|egrep "^ab|^aud|^kdump|vm|^md|^mic|^post|lvm" |awk '{print $1}'|sed -r 's#(.*)#systemctl disable &#g'|bash Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-ccpp.service. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-oops.service. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-vmcore.service. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-xorg.service. Removed symlink /etc/systemd/system/multi-user.target.wants/abrtd.service. Removed symlink /etc/systemd/system/multi-user.target.wants/auditd.service. Removed symlink /etc/systemd/system/basic.target.wants/microcode.service. Removed symlink /etc/systemd/system/multi-user.target.wants/vmtoolsd.service. Removed symlink /etc/systemd/system/vmtoolsd.service.requires/vgauthd.service.
-
OpenStack部署優化環境
-
修改網絡卡配置檔案
-
# 第一個里程碑:重啟完成之後,登入系統 #
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth0 UUID=4bf2af89-5f6d-4979-83e9-df6ce1c3cc41 DEVICE=eth0 ONBOOT=no
# 第二個里程碑: 刪掉多餘的行,只留以下內容 #
TYPE=Ethernet BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=no
# 第三個里程碑:在以上基礎上,繼續配置 #
# 紅色為修改和增加部分
# 以下程式碼為優化後的網絡卡全部配置 #
TYPE=Ethernet BOOTPROTO=none #取消dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes #設定開機啟動 IPADDR=10.0.0.11 #IP地址 NETMASK=255.255.255.0 #子網掩碼 GATEWAY=10.0.0.254 #閘道器 DNS1=223.5.5.5 #DNS
# 說明 :與/etc/init.d/network restart 效果一致
# 第五個里程碑:檢查 ping 一下閘道器10.0.0.254測試網路連通性 #
ping 10.0.0.254 -c2
到這裡,ok,可以愉快的使用xshell了
-
系統的優化
# 登入xshell開始優化 #
-
防火牆的優化
systemctl disable firewalld.service systemctl stop firewalld
-
Selinux的優化
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
-
ssh的優化
# 修改完成後為紅色部分 #
vi /etc/ssh/sshd_config
93行:GSSAPIAuthentication no
129行:UseDNS no
sed -i '93s@GSSAPIAuthenticationyes@GSSAPIAuthenticationno@;129s@#UseDNSyes@UseDNSno@'/etc/ssh/sshd_config
# 重啟ssh #
systemctl restart sshd
-
hosts的優化
vi /etc/hosts # 增加2行 10.0.0.11 controller 10.0.0.31 compute1 10.0.0.32 compute2
-
修改主機名
hostnamectl set-hostname controller
-
yum源優化
# 使用光碟搭建本地yum源
umount /mnt cd /etc/yum.repos.d/ mkdir test -p \mv *.repo test echo '[local] name=local baseurl=file:///mnt gpgcheck=0' >local.repo mount /dev/cdrom /mnt yum makecache
-
其他優化
# 關閉網絡卡圖形化設定模式 # systemctl stop NetworkManager.service systemctl disable NetworkManager.service # 關閉郵件服務 systemctl stop postfix.service systemctl disable postfix.service # 下載tab補全命令 # yum install -y bash-completion.noarch # 下載 常用命令 # yum install -y net-tools vim lrzsz wget tree screen lsof tcpdump # 至此;模板機優化完成;關機開始克隆 # shutdown -h now
-
參考文獻
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/index.html