CentOS7版本的新特性

综述

XFS 比 EXT 4更适合大文件处理,但消耗的CPU资源是EXT4的两倍

XFS 最大支持单文件16TB,EXT4:50TB

最小1GB/建议每个逻辑CPU 1GB

逻辑CPU:核数,而非线程数 lscpu可查看

一CPU多核,一二级缓存是独立的,三级缓存是所有核共享的

NUMA :非一致性内存访问UMA

换成GRUB2

GPT: 单硬盘超过2TB(RAID后),一个硬盘最多可分配128个主分区

支持非linux文件系统苹果的扩展分层文件系统(HFS+)微软的NTFS(只是grub2支持,不一定是内核支持)

内核版本3.10

支持大的crashkernel大小

以前kdump会把内存128M专用于保存内核信息,内存小于2GB时会启动失败。现在比128M更大了

swap内存压缩

将内核模块列入黑名单

动态内核补丁(不需要重新编译内核了)

集群

Pacemaker

keepalived HAProxy

替换Piranha

initrd=initrd.img驱动模块

命令

新增命令纠错功能

新增参数/选项补齐功能

服务

原来在:/etc/init.d/

现在: */usr/lib/systemd

/usr/lib/systemd/system

系统启动的第一个进程(进程号1)是systemd,代替了原来的init

pstree可以看到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemctl status|start|stop|restart|reload UNIT
systemctl enable|disable UNIT
systemctl mask UNIT # 完全disable,使unit不被手动启动或开机启动
systemctl unmask UNIT
systemctl list-unit-files [--type=service] # 相当于chkconfig --list (但多了一种状态:static,表示这个服务不能单独启动,而是由其它服务调用带动启动)
systemctl list-units [--type=service] [--all] # 其中all表示也显示inactive的
systemctl --failed --type=service # 查看失败的服务
systemctl list-dependencies UNIT
systemctl reboot|poweroff
systemctl get-default
systemctl set-defalut graphical.target | muti-user.target

只查类型是service的Unit

1
2
3
systemctl --type=service
systemctl status sshd.service -l # 查看更详细信息
systemctl is-active | is-enabled sshd.service

修改root密码:

1、重启
2、在boot loader界面按任何键
3、光标移至需要启动的条目,按e
4、光标移到以linux16开头的那行
5、在行末添加rd.break
6、按ctrl+x启动
7、启动后执行以下命令来重置root密码

1
2
3
4
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel

最后两次exit退出

YUM

yum 从网络下载安装时,不仅有是Y和N选项,还有d选项,实现只下载,不安装。保存路径默认为:/var/cache/yum。
注意,只适用于从网络安装,如果是本地目录为yum源(baseurl=file://)则不生效

而以前的版本只可以实现安装时顺便缓存在本址,需要修改配置文件:
vim /etc/yum.conf

1
keepcache=1

yum clean all 可以清除所有下载的包

时间管理

1
2
3
4
timedatectl
timedatectl list-timezone
timedatectl set-timezone Asia/Shanghai
timedatectl set-time 9:00:00

以前/etc/ntp.conf

现在/etc/chrony.conf

服务:chronyd

1
chronyc sources -v # 查看同步过程

日志管理

journalctl 可以查看指定条件的日志,比如按owner、时间段、产生的进程等

-x, –catelog 只查看/var/logmessages

-n 指定行数,默认10行

例如:

1
journalctl --since 9:00:00 --until 9:30:00 __SYSTEM_UNIT=httpd.service

GPT分区

以前超过2T的硬盘用fdisk分区最多只能用2T,所以以前用parted:

1
2
3
parted /dev/sdb
mklabel gpt
mkpart 83 1 2621440

即使这样分区后,用fdisk -l /dev/sdb查看分区大小时,刚才创建的分区仍是2T

1
2
3
红帽/centos 5:partprobe
红帽/centos 6:partx -a
红帽/contos 7: partprobe 或 kpartx

现在不用parted,改用gdisk

1
2
3
4
gdisk /dev/sdc
2
n
1 # 最多可以分128个分区

-2G 负数表示从后往前分2G空间,数据放在硬盘的最外面,性能最好。负数表示从里往外分,即先分性能差的部分

格式化

1
2
3
4
5
mkfs.xfs /dev/sdc1
xfs_info /dev/sdc1
xfs_growfs # 在线拉伸,不支持缩小
xfsdump # 备份
xfsrestore # 还原

网络管理

网络接口命名,实际是被systemd-udevd改了

可以通过dmesg | grep eth查看

命名由三部分组成:

1、 en是以太网,wl是WLAN, ww是WWAN
2、 o是板载on board的,s是热插拔,p是PCI
3、 数字,代表索引、ID或port

如果无法匹配,则用传统命名

1
2
nmcli con show
nmcli dev status

疑问

centos7中,网卡配置文件需要加NM_CONTROLLED=”no”,否则:

改网卡配置文件(如改IP)再service network restart 不生效
这种情况下要生效需要重启或执行以下命令:

1
2
3
4
nmcli con reload
nmcli con show
nmcli con down "..."
nmcli con up "..."

改计算机名

现在是/etc/hostname

以前是/etc/sysocnfig/network

防火墙

默认改成firewalld

1
2
systemctl mask iptables.service
systemctl start firewalled

firewalled配置的内容还是可以通过iptables -L查看

9个zone:

1、trusted允许所有进来的流量
2、home拒绝所有进来的流量,除非是与出去的流量相关或者匹配ssh,mdsn,ipp-client,samba-client,dhcpv6-client
以前的iptables是通过这样实现匹配出去相关的流量:iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
3、internalhome是一样的
4、wordhome基本一样,但默认允许的程序只有:ssh,ipp-client,dhcpv6-client
5、publichome基本一样,但默认允许的程序只有:ssh,dhcpv6-client
是新加的网络接口的默认zone
6、externalhome类似,但默认允许的程序只有ssh.还可以作为masqueraded(SNAT)
7、dmzhome类似,但默认允许的程序只有ssh
8、blockhome类似,但没有默认允许的程序
9、drophome类似,但不用ICMP errors包响应

每个zone里的组成:

1
2
3
4
5
6
7
8
service
port
masquerading (SNAT)
port forwarding (DNAT)
icmp filter
rich rules 优先级最高
interface
source

配置文件:/etc/firewalld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
firewall-config 图形界面配置
firewall-cmd 命令行界面配置
firewall-cmd --get-zones
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=home
firewall-cmd --get-active-zones
firewall-cmd --source=<CIDR> [--zone=<zone>] 如不指定zone则改变当前的zone
firewall-cmd --remove-source=<CIDR>[--zone=<zone>]
firewall-cmd --add-interface=<interface>[--zone=<zone>]
firewall-cmd --change-interface=<interface>[--zone=<zone>]
--list-all 当前的zone的规则,可加[--zone=<zone>]指定其它zone
--list-all-zomes 所有zones
--add-service=<service> [--zone=<zone>]
--remove-service=<service> [--zone=<zone>]
--add-port=<port/protocol> [--zone=<zone>]
--remove-port=<port/protocol> [--zone=<zone>]
--reload
firewalld-cmd --permanent --add-service=samba
firewalld-cmd --permanent --remove-service=samba

runtime立刻生效,但下次重启不生效

不加--permanent则默认就是runtime

permanent下次加载生效,可以通过 firewalld-cmd --reload 立刻生效

1
firewalld-cmd --permanent --add-port=80/tcp

rich rules优先级最高

1
2
3
4
firewall-cmd --permanent --new-zone=test # 注意,只能添加permanent 的zone
firewall-cmd --permanent --zone=classroom --add-rich-rule='rule family=ipv4 source address=192.168.0.1/32 reject'
firewall-cmd --add-rich-rule='rule service name=ftp limit value=2/m accept' # 每分钟只接受两个包
firewall-cmd --add-rich-rule='rule protocol value=esp drop'

规则位置:/usr/lib/firewalld/zones/

iscsi target

1
2
yum install targetcli
systemctl enable target;systemctl start target

以前服务是tgtd,现在是target.(客户端是iscsi)

1
2
firewalld-cmd --permanent --add-port=3260/tcp
firewalld-cmd reload

targetcli 进入target命令行模式

1
2
3
4
5
/backstores/block/ create serverX.disk1 /dev/iSCSI_vg/disk1_lv
/iscsi create iqn.2014-06.com.example:serverX
/iscsi/iqn.2014-06.com.example:serverX/tpg1/acls/ create iqn.2014-06.com.example:desktopX
/iscsi/iqn.2014-06.com.example:serverX/tpg1/luns create /backstores/block/serverX.disk1
/iscsi/iqn.2014-06.com.example:serverX/tpg1portals create 172.25.1.11 # 最后这个IP是自己的IP,即开启监听。不加的话不是监听所有,而是都不监听,可以设成0.0.0.0 监听所有

启动流程

一、 加电自检

二、 选择启动设备

1、读取启动设备第一个扇区,读取引导程序
2、引导程序读取配置文件 /boot/grub2/grub.cfg #不要编辑此文件
上面文件是grub2-mkconfig命令(用这两个文件/etc/default/grub,/etc/grub.d)生成的
3、加载内核,并且以只读方式加载根分区
4、加载init ram disk

三、 加载systemd进程

1、读取/etc/fstab
2、读取所选择的target,如multi-user.target
3、启动该级别的服务
4、/etc/rc.d/rc.local开机脚本 (现在应该是在/usr/lib/systemd/下)

四、 login

1
2
3
4
5
pvscan;vgscan;lvscan
lvchange -a y /dev/rhel/home
mknod /dev/rhel/home b 253 1
xfs_repare /dev/rhel/home
systemd.unit=emergency.target

运行级别:

1
2
3
4
5
6
7
graphical.target # 相当于原来的level 5
multi-user.target # 相当于原来的level 3
rescue.target # 相当于原来的level 1。单用户模式,不启动服务。但不同的是,现在需要密码才能进入。
powerof.target # 相当于原来的level 0
reboot.target # 相当于原来的level 6
emergency.target # 救援,文件系统故障
rd.break

以前可以定义某些服务只在3级别自动启动,而5级别不启动

现在graphical.target 调用multi-user.target,所以没法这么做了。

1
2
3
4
5
6
systemctl get-default # 显示当前target
systemctl isolate multi-user.targe # 相当于以前的init 3命令
systemctl list-dependencies graphical.target | grep target
systemctl list-units --type=targe --all
systemctl list-unit-files --type=targe --all
systemctl isolate multi-user.targe
1
2
dd if=/dev/zero of=/dev/sda bs=446 count=1
grub2-install /dev/sda

grub2-mkpasswd-pbkdf2加密

samba客户端多用户

1
2
echo 'username=brain' >/root/smb-multiuser.txt
echo 'password=redhat' >>/root/smb-multiuser.txt
1
2
3
4
vim /etc/fstab
//serverX/smbshare /mnt/multiuser cifs credentials=root/smb-multiuser.txt,multiuser,sec=ntlmssp 0
mount /mnt/multiuser
su -
文章目录
  1. 1. 综述
  2. 2. 换成GRUB2
  3. 3. 内核版本3.10
  4. 4. 集群
  5. 5. 命令
  6. 6. 服务
  7. 7. 修改root密码:
  8. 8. YUM
  9. 9. 时间管理
  10. 10. 日志管理
  11. 11. GPT分区
  12. 12. 格式化
  13. 13. 网络管理
  14. 14. 疑问
  15. 15. 改计算机名
  16. 16. 防火墙
    1. 16.1. 9个zone:
  17. 17. iscsi target
  18. 18. 启动流程
  19. 19. samba客户端多用户