1、centos的演变

1.1 启动流程sysvinit

串行启动:一次一个,一个一个启动
并行启动:全部的一起启动

init优点

运行非常良好。主要依赖于shell脚本

init缺点

1、启动慢
2、容易夯住,fstab与nfs挂载问题

1.2 upstart 技术

使用的版本:
  centos6
  ubuntu14

1.3 systemd技术

  克服init固有缺点,提高系统的启动速度
  降低迁移成本

1.4 三种启动技术对比

CentOS 7.X 系统安装及优化 - 图1

1.5 并行启动三大原理:

  1、解决socket 依赖/端口依赖socket 网络套接字文件
  2、解决D-Bus依赖:采用了D-Bus 为程序之间的通讯工具,类似消息队列,可以缓存信息
  3、解决文件系统依赖、类似autofs机制

2. 安装centos7系统

2.1 虚拟机选择

CentOS 7.X 系统安装及优化 - 图2
CentOS 7.X 系统安装及优化 - 图3
磁盘空间尽量大一些
CentOS 7.X 系统安装及优化 - 图4

2.2 系统安装

1)开机进入安装
CentOS 7.X 系统安装及优化 - 图5
2)按下TAB键
CentOS 7.X 系统安装及优化 - 图6
添加内核参数 让网卡名称变为eth
空格 输入 net.ifnames=0 biosdevname=0 然后回车
3)选择语言
CentOS 7.X 系统安装及优化 - 图7
4) 设置网络连接和主机名
CentOS 7.X 系统安装及优化 - 图8
5)注意勾选开机自启动
CentOS 7.X 系统安装及优化 - 图9
6)设置ip地址
CentOS 7.X 系统安装及优化 - 图10
同样的方式将另外 一块网卡配置好
7)修改主机名
CentOS 7.X 系统安装及优化 - 图11
8)选择安装的环境,选择最小化安装。
注意勾选依赖包
CentOS 7.X 系统安装及优化 - 图12
9)磁盘分区为自定义分区。
CentOS 7.X 系统安装及优化 - 图13
选择/boot挂载点的大小。这里设置为1g
CentOS 7.X 系统安装及优化 - 图14
添加swap挂载点
CentOS 7.X 系统安装及优化 - 图15
注意选择都为标准分区类型,直接写到磁盘
CentOS 7.X 系统安装及优化 - 图16
添加根分区后选择完成
CentOS 7.X 系统安装及优化 - 图17
关闭密码保护
CentOS 7.X 系统安装及优化 - 图18
选择关闭
CentOS 7.X 系统安装及优化 - 图19
关闭KDUMP功能
CentOS 7.X 系统安装及优化 - 图20
开始安装,注意为469个包
CentOS 7.X 系统安装及优化 - 图21
安装的过程中设置root的密码。

3、安装完成后的优化

查看系统版本

  1. [root@CentOS7 ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.3.1611 (Core)

修改yum源,base源

  1. [root@CentOS7 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  2. % Total % Received % Xferd Average Speed Time Time Time Current
  3. Dload Upload Total Spent Left Speed
  4. 100 2573 100 2573 0 0 2940 0 --:--:-- --:--:-- --:--:-- 2940

epel源

  1. [root@CentOS7 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  2. % Total % Received % Xferd Average Speed Time Time Time Current
  3. Dload Upload Total Spent Left Speed
  4. 100 1084 100 1084 0 0 915 0 0:00:01 0:00:01 --:--:-- 916

安装软件

  1. yum install vim wget bash-completion lrzsz nmap nc tree htop iftop net-tools -y

bash-completion 补全命令参数的包

4、centos7 与centos 6的区别

4.1 解决更换网卡后名称变更的问题

更改名称的方法
修改CentOS7网卡名称为传统名称eth0格式 http://oldboy.blog.51cto.com/2561410/1722101

4.2 nmtui

centos7 上管理网路的图形化工具

4.3 主机名配置文件的区别

临时 hostname
永久 /etc/hostname

  1. [root@CentOS7 ~]# cat /etc/hostname
  2. CentOS7

一步到位

  1. [root@CentOS7 ~]# hostnamectl
  2. Static hostname: CentOS7
  3. Icon name: computer-vm
  4. Chassis: vm
  5. Machine ID: 4ab1c20b25f64a38a7197b8453b04b2c
  6. Boot ID: abd0a393540b4788bc1e571b413b33c4
  7. Virtualization: vmware
  8. Operating System: CentOS Linux 7 (Core)
  9. CPE OS Name: cpe:/o:centos:centos:7
  10. Kernel: Linux 3.10.0-514.el7.x86_64
  11. Architecture: x86-64

修改主机名

  1. [root@CentOS7 ~]# hostnamectl set-hostname clsn

4.4 字符集

临时

  1. [root@clsn ~]# echo $LANG
  2. zh_CN.UTF-

永久

  1. [root@clsn ~]# cat /etc/locale.conf
  2. LANG="zh_CN.UTF-8"

一步到位

  1. [root@clsn ~]# localectl
  2. System Locale: LANG=zh_CN.UTF-8
  3. VC Keymap: cn
  4. X11 Layout: cn

4.5 查看系统版本号

  1. [root@clsn bin]# cat /etc/os-release
  2. NAME="CentOS Linux"
  3. VERSION="7 (Core)"
  4. ID="centos"
  5. ID_LIKE="rhel fedora"
  6. VERSION_ID="7"
  7. PRETTY_NAME="CentOS Linux 7 (Core)"
  8. ANSI_COLOR="0;31"
  9. CPE_NAME="cpe:/o:centos:centos:7"
  10. HOME_URL="https://www.centos.org/"
  11. BUG_REPORT_URL="https://bugs.centos.org/"
  12. CENTOS_MANTISBT_PROJECT="CentOS-7"
  13. CENTOS_MANTISBT_PROJECT_VERSION="7"
  14. REDHAT_SUPPORT_PRODUCT="centos"
  15. REDHAT_SUPPORT_PRODUCT_VERSION="7"

4.6 兼容的rc.local

  1. cat /etc/rc.local
  2. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
  3. # that this script will be executed during boot.

想要使用rc.local要给他可执行权限

  1. [root@clsn bin]# chmod +x /etc/rc.d/rc.local
  2. [root@clsn bin]# ll /etc/rc.d/rc.local
  3. -rwxr-xr-x. 1 root root 473 11 7 2016 /etc/rc.d/rc.local

4.7 运行级别Runlevel

之前的查看运行级别的方法依旧使用

  1. [root@clsn init.d]# runlevel
  2. N 3

原运行级别文件

  1. [root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
  2. lrwxrwxrwx. 1 root root 15 11 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
  3. lrwxrwxrwx. 1 root root 13 11 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target
  4. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
  5. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
  6. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
  7. lrwxrwxrwx. 1 root root 16 11 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target
  8. lrwxrwxrwx. 1 root root 13 11 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target

设置运行级别

  1. root@clsn init.d]# systemctl get-default multi-user.target
  2. systemctl get-default #查看运行级别

示例

  1. [root@clsn ~]# systemctl get-default
  2. multi-user.target
  3. [root@clsn ~]# systemctl set-default multi-user.target
  4. Removed symlink /etc/systemd/system/default.target.
  5. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

运行级别的变更

  1. [root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
  2. lrwxrwxrwx. 1 root root 15 11 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
  3. lrwxrwxrwx. 1 root root 13 11 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target
  4. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
  5. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
  6. lrwxrwxrwx. 1 root root 17 11 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
  7. lrwxrwxrwx. 1 root root 16 11 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target
  8. lrwxrwxrwx. 1 root root 13 11 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target

4.8 systemd一统天下

系统启动文件的目录

  1. [root@clsn init.d]# ls /usr/lib/systemd/system

启动命令示例

  1. [root@clsn init.d]# cat /usr/lib/systemd/system/crond.service
  2. [Unit]
  3. Description=Command Scheduler
  4. After=auditd.service systemd-user-sessions.service time-sync.target
  5. [Service]
  6. EnvironmentFile=/etc/sysconfig/crond
  7. ExecStart=/usr/sbin/crond -n $CRONDARGS
  8. ExecReload=/bin/kill -HUP $MAINPID
  9. KillMode=process
  10. [Install]
  11. WantedBy=multi-user.target

语法格式 http://www.jinbuguo.com/systemd/systemd.service.html

4.9 管理服务

关闭防火墙服务及开机自启动

  1. systemctl stop postfix.service
  2. systemctl disable postfix.service

关闭防火墙详细过程

  1. [root@clsn ~]# systemctl disable firewalld.service
  2. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  3. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  4. [root@clsn ~]# systemctl stop firewalld.service
  5. [root@clsn ~]# systemctl status firewalld.service

systemctl:融合service和chkconfig的功能于一体,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。。

4.10 命令对比

CentOS 7.X 系统安装及优化 - 图22
systemctl start crond.service和systemctl start crond效果一样。

4.11 开机时间优化

  1. systemd-analyze time
  2. systemd-analyze blame
  3. systemd-analyze plot >bootime.avg

开机启动时间

  1. [root@clsn system]# systemd-analyze time
  2. Startup finished in 387ms (kernel) + 1.406s (initrd) + 31.831s (userspace) = 33.626s

查看具体的使用时间

  1. [root@clsn system]# systemd-analyze blame
  2. 10.812s sshd-keygen.service
  3. 10.758s abrt-ccpp.service
  4. 6.395s chronyd.service
  5. ……

生产图表

  1. [root@clsn tmp]# systemd-analyze plot >bootime.svg
  2. [root@clsn tmp]# sz bootime.svg

CentOS 7.X 系统安装及优化 - 图23

4.12 开机启动项优化

  1. [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
  2. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-ccpp.service.
  3. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-oops.service.
  4. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-vmcore.service.
  5. Removed symlink /etc/systemd/system/multi-user.target.wants/abrt-xorg.service.
  6. Removed symlink /etc/systemd/system/multi-user.target.wants/abrtd.service.
  7. Removed symlink /etc/systemd/system/multi-user.target.wants/auditd.service.
  8. Removed symlink /etc/systemd/system/basic.target.wants/microcode.service.
  9. Removed symlink /etc/systemd/system/multi-user.target.wants/vmtoolsd.service.
  10. Removed symlink /etc/systemd/system/vmtoolsd.service.requires/vgauthd.service.

5、OpenStack部署优化环境

5.1 修改网卡配置文件

第一个里程碑:重启完成之后,登录系统

  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. TYPE=Ethernet
  3. BOOTPROTO=dhcp
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. NAME=eth0
  15. UUID=4bf2af89-5f6d-4979-83e9-df6ce1c3cc41
  16. DEVICE=eth0
  17. ONBOOT=no

第二个里程碑: 删掉多余的行,只留以下内容

  1. TYPE=Ethernet
  2. BOOTPROTO=dhcp
  3. NAME=eth0
  4. DEVICE=eth0
  5. ONBOOT=no

第三个里程碑:在以上基础上,继续配置 #
# 红色为修改和增加部分
# 以下代码为优化后的网卡全部配置

  1. TYPE=Ethernet
  2. BOOTPROTO=none #取消dhcp
  3. NAME=eth0
  4. DEVICE=eth0
  5. ONBOOT=yes #设置开机启动
  6. IPADDR=10.0.0.11 #IP地址
  7. NETMASK=255.255.255.0 #子网掩码
  8. GATEWAY=10.0.0.254 #网关
  9. DNS1=223.5.5.5 #DNS

说明 :与/etc/init.d/network restart 效果一致
# 第五个里程碑:检查 ping 一下网关10.0.0.254测试网络连通性

  1. ping 10.0.0.254 -c2

CentOS 7.X 系统安装及优化 - 图24
到这里,ok,可以愉快的使用xshell了

5.2 系统的优化

登录xshell开始优化

5.3 防火墙的优化

  1. systemctl disable firewalld.service
  2. systemctl stop firewalld

5.4 Selinux的优化

  1. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

5.5 ssh的优化

  1. # 修改完成后为红色部分 #
  2. vi /etc/ssh/sshd_config
  3. 93行: GSSAPIAuthentication no
  4. 129行: UseDNS no
  5. sed -i '93s@GSSAPIAuthentication yes@GSSAPIAuthentication no@;129s@#UseDNS yes@UseDNS no@' /etc/ssh/sshd_config
  6. # 重启ssh #
  7. systemctl restart sshd

5.6 hosts的优化

  1. vi /etc/hosts
  2. # 增加2行
  3. 10.0.0.11 controller
  4. 10.0.0.31 compute1
  5. 10.0.0.32 compute2

5.7 修改主机名

  1. hostnamectl set-hostname controller

5.8 yum源优化

使用光盘搭建本地yum源

  1. umount /mnt
  2. cd /etc/yum.repos.d/
  3. mkdir test -p
  4. \mv *.repo test
  5. echo '[local]
  6. name=local
  7. baseurl=file:///mnt
  8. gpgcheck=0' >local.repo
  9. mount /dev/cdrom /mnt
  10. yum makecache

5.9 其他优化

  1. # 关闭网卡图形化设置模式 #
  2. systemctl stop NetworkManager.service
  3. systemctl disable NetworkManager.service
  4. # 关闭邮件服务
  5. systemctl stop postfix.service
  6. systemctl disable postfix.service
  7. # 下载tab补全命令 #
  8. yum install -y bash-completion.noarch
  9. # 下载 常用命令 #
  10. yum install -y net-tools vim lrzsz wget tree screen lsof tcpdump
  11. # 至此;模板机优化完成;关机开始克隆 #
  12. shutdown -h now

6、参考文献

https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/index.html