CentOS7新特性(转载至https://www.cnblogs.com/nineep/p/67)

就是以为写的有意思,共享给你们。linux

CentOS7版本的新特性
综述vim

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

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

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

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

一CPU多核,一二级缓存是独立的,三级缓存是全部核共享的tcp

NUMA :非一致性内存访问ide

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能够看到

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

systemctl --type=service

systemctl status sshd.service -l 查看更详细信息

systemctl is-active | is-enabled sshd.service

修改root密码:

1.重启

2.在boot loader界面按任何键

3.光标移至须要启动的条目

4.按e

5.光标移到以linux16开头的那行

6.在行末添加rd.break

7.按ctrl+x启动

8.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

keepcache=1

yum clean all 能够清除全部下载的包

时间管理

timedatectl

timedatectl list-timezone

timedatectl set-timezone Asia/Shanghai

timedatectl set-time 9:00:00

之前/etc/ntp.conf

如今/etc/chrony.conf

服务:chronyd

chronyc sources -v 查看同步过程

日志管理

journalctl 能够查看指定条件的日志,好比按owner、时间段、产生的进程等

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

-n 指定行数,默认10行

例如:

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

GPT分区

之前超过2T的硬盘用fdisk分区最多只能用2T,因此之前用parted:

parted /dev/sdb

mklabel gpt

mkpart 83 1 2621440

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

红帽/centos 5:partprobe

红帽/centos 6:partx -a

红帽/contos 7: partprobe 或 kpartx

如今不用parted,改用gdisk

gdisk /dev/sdc

2

n

1 最多能够分128个分区

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

格式化

mkfs.xfs /dev/sdc1

xfs_info /dev/sdc1

xfs_growfs 在线拉伸,不支持缩小

xfsrestore和 xfsdump备份还原

网络管理

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

能够经过dmesg | grep eth查看

命名由三部分组成:

1.en是以太网,wl是WLAN, ww是WWAN

2.o是板载on board的,s是热插拔,p是PCI

3.数字,表明索引、ID或port

若是没法匹配,则用传统命名

nmcli con show

nmcli dev status

下面这部分还有疑问

centos7中,网卡配置文件须要加NM_CONTROLLED="no",不然:

改网卡配置文件(如改IP)再service network restart 不生效

这种状况下要生效须要重启或执行如下命令:

nmcli con reload

nmcli con show

nmcli con down "..."

nmcli con up "..."

改计算机名

如今是/etc/hostname

之前是/etc/sysocnfig/network

防火墙

默认改为firewalld

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.internal 和home是同样的

4.word 和home基本同样,但默认容许的程序只有:ssh,ipp-client,dhcpv6-client

5.public和home基本同样,但默认容许的程序只有:ssh,dhcpv6-client

是新加的网络接口的默认zone

6.external 和home相似,但默认容许的程序只有ssh.还能够做为masqueraded(SNAT)

7.dmz 和home相似,但默认容许的程序只有ssh

8.block和home相似,但没有默认容许的程序

9.drop和home相似,但不用ICMP errors包响应

每一个zone里的组成:

service

port

masquerading (SNAT)

port forwarding (DNAT)

icmp filter

rich rules 优先级最高

interface

source

配置文件: /etc/firewalld

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马上生效

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

rich rules优先级最高

firewall-cmd --permanent --new-zone=test 注意,只能添加permanent 的zone

firewall-cmd --permanent --zone=cla***oom --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

yum install targetcli

systemctl enable target;systemctl start target

之前服务是tgtd,如今是target.(客户端是iscsi)

firewalld-cmd --permanent --add-port=3260/tcp

firewalld-cmd reload

targetcli 进入target命令行模式

/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、选择启动设备

1.读取启动设备第一个扇区,读取引导程序

2.引导程序读取配置文件 /boot/grub2/grub.cfg #不要编辑此文件

上面文件是grub2-mkconfig命令(用这两个文件/etc/default/grub /etc/grub.d )生成的

3.加载内核,而且以只读方式加载根分区

4.加载init ram disk

3、加载systemd进程

1.读取/etc/fstab

  1. 读取所选择的target,如multi-user.target

3.启动该级别的服务

4./etc/rc.d/rc.local开机脚本 (如今应该是在/usr/lib/systemd/下)

4、login

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

运行级别

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,因此无法这么作了。

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

dd if=/dev/zero of=/dev/sda bs=446 count=1

grub2-install /dev/sda

grub2-mkpasswd-pbkdf2 加密

samba客户端多用户

echo 'username=brain' >/root/smb-multiuser.txt

echo 'password=redhat' >/root/smb-multiuser.txt

vim /etc/fstab

//serverX/smbshare /mnt/multiuser cifs credentials=root/smb-multiuser.txt,multiuser,sec=ntlmssp 0

mount /mnt/multiuser

su -brain