我这里用7.2的版本,为了后面云计算的兼容性做准备
centos的演变
sysvinit技术
系统第一个启动进程:init,pid=1
串行启动:一次一个,一个一个启动
使用的版本:centos5
init优点:运行非常良好,概念简单清晰。主要依赖于shell脚本
init缺点:1、按照一定顺序执行,启动慢2、容易hang住,fstab与nfs挂载问题
upstart 技术(过度的技术)
串行+并行启动
使用的版本:centos6、ubuntu14
systemd技术
并行启动:全部的一起启动
克服init固有缺点(串行启动),提高系统的启动速度(并行启动)
降低迁移成本
三种启动技术对比:
并行启动三大原理:
1、解决socket 依赖/端口依赖 socket 网络套接字文件
2、解决D-Bus 依赖:采用了D-Bus 为程序之间的通讯工具,类似消息队列,可以缓存信息
3、解决文件系统依赖、类似autofs机制 先加载boot、swap、/ 分区,后直接启动系统,延迟启动其他guaz
安装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.2.1611 (Core)
[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
CurrentDload Upload Total Spent Left Speed100 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
CurrentDload Upload Total Spent Left Speed100 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 上管理网路的图形化工具,类似于setup
主机名配置文件的区别
临时 hostname
永久vim /etc/hostname
修改主机名永久和临时一步到位:hostnamectl set-hostname george
字符集
临时
[root@george ~]# echo $LANGzh_CN.UTF-8
永久
[root@george ~]# cat /etc/locale.confLANG="zh_CN.UTF-8"
永久和临时同时修改
[root@george ~]# localectl set-locale LANG=en_US.utf8
[root@george ~]# localectl
System Locale: LANG=zh_CN.UTF-8
VC Keymap: cn
X11 Layout: cn
查看系统版本号
[root@clsn bin]# cat /etc/os-release
兼容的rc.local
cat /etc/rc.local
想要使用rc.local 必须给他可执行权限(centos6中可以直接使用)
chmod +x /etc/rc.d/rc.local
运行级别
原运行级别文件
ls -lh /usr/lib/systemd/system/runlevel*.target
设置运行级别
systemctl set-default multi-user.target
查看当前运行级别
systemctl get-default
关机命令
poweroff
shutdown -h now
halt #不会关机,只会退出登录
查看路由和监听端口
ip r
ss #查看socket,类似于netstat
systemd一统天下
系统启动文件的目录
ls /usr/lib/systemd/system
语法格式 http://www.jinbuguo.com/systemd/systemd.service.html
管理服务
服务及开机自启动:
systemctl stop postfix.service
systemctl start postfix.service
systemctl disable postfix.service
systemctl enable postfix.service
查看服务是否为开机自启动:
systemctl is-enabled postfix.service #查看单个服务是否为开机自启动
systemctl list-unit-files |grep enabled #查看哪些服务为开机自启动
systemctl:融合service和chkconfig的功能于一体,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。
命令对比
开机时间优化
systemd-analyze time #查看系统的启动时间
systemd-analyze blame #查看系统每个服务的启动时间
systemd-analyze plot >bootime.avg #生成图形化效果,然后sz bootime.avg下载
开机启动时间
systemd-analyze time
Startup finished in 387ms (kernel) + 1.406s (initrd) + 31.831s (userspace) = 33.626s
查看具体的使用时间
systemd-analyze blame
生产图表
systemd-analyze plot >bootime.svg #保存到指定文件
sz bootime.svg #上传到windown查看
开机启动项优化
systemctl list-unit-files|egrep "^ab|^aud|^kdump|vm|^md|^mic|^post|lvm" |awk '{print $1}'|sed -r 's#(.*)#systemctl disable &#g'|bash
小伙伴们可以关注我的公众号:linux运维菜鸟之旅,阅读更方便!