Linux系统日常维护手册
文档编号 版本 V1.0 生效日期 拟制 审核 批准
1
变更记录
版本号 V1.0 V1.1 建立 更新目录及调整相关章节的位置 修改原因/内容 修改人 审核人 张旭亮 张旭亮 修改时间
2
目录
第一章Linux常用命令 ....................................................................................................... 4 第二章Linux系统检查 .......................................................................................... 6 第三章Linux卷管理 .......................................................................................................... 16 第四章Linux Cluster双机配置 .................................................................................... 16 第五章Linux参数调整 ..................................................................................................... 20 第六章Linux故障处理 ..................................................................................................... 40
3
第一章 Linux常用命令
1.1常规查询命令
1.1.1查看修改主机IP地址命令 查看IP方法一:
[root@ahdx-yqzl~]#ifconfig
查看IP方法二:
[root@ahdx-yqzl ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
修改主机IP
[root@ahdx-yqzl ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改IPADDR,NETMASK,GATEWAY的值
[root@ahdx-yqzl ~]#service network restart 重启network服务来使IP生效
在一块网卡上生成多个IP
[root@ahdx-yqzl ~]ifconfig eth0:1 134.64.101.98 netmks 255.255.255.224
注:用ifconfig新增的IP保存在内存中,重启network或者重启主机以后,地址就失效了,如果长期使用建议采用新增网卡配置文件的方法
在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:1的文件 内容样例为:
4
DEVICE=eth0:1
IPADDR=172.16.170.2
BROADCAST=172.16.170.254 NETMASK=255.255.255.0 ONBOOT=yes
保存退出后,重启network后生效 1.1.2.查看主机网卡速率和全半双工设置 [root@ahdx-yqzl ~]# ethtool eth0
1.1.3.查看修改主机路由表 查看路由表方法一:
[root@ahdx-yqzl ~]# netstat -rn
查看路由表方法二:
[root@ahdx-yqzl ~]# route –n
增加路由:
5
增加某一个IP的路由
route add -host 192.168.198.34 gw 172.29.97.1 dev eth0 增加某一段IP路由
route add -host 192.168.198.0 netmask 255.255.255.0 gw 172.29.97.1 dev eth0
删除某一条路由
route del –host 192.168.198.34
1.1.4.查看主机序列号
[root@ahdx-yqzl ~]# dmidecode -s system-serial-number
注:在某些刀片机安装的Redhat需要使用下面的命令查看序列号 [root@ahdx-yqzl ~]#dmidecode -s chassis-serial-number
1.1.5.查看操作系统发行版本和内核版本 查看操作系统发行版本方法一:
[root@ahdx-yqzl ~]# head -n 1 /etc/issue
查看操作系统发行版本方法二:
注:在一些主机上安装oracle时会修改/etc/redhat-release中的发行版本号,所以有时候用方法二看到的操作系统发行版本并不一定是真实的。
查看操作系统内核版本: [root@ahdx-yqzl ~]# uname–a
1.1.6.查看主机网卡&HBA卡 查看网卡&HBA型号
6
[root@crmnmdb ~]# lspci–tv
查看网卡mac地址
[root@ahdx-yqzl ~]# ifconfig -a
查看HBA卡WWN号
[root@crmnmdb ~]# cat /sys/class/fc_host/host2/port_name
7
注:/sys/class/fc_host/下的每一个hostX代表一块HBA卡
查看HBA卡当前的链接速率
[root@crmnmdb host2]# cat /sys/class/fc_host/host2/speed
1.1.7.查看主机系统盘和文件系统 文件系统使用率
[root@ahdx-yqzl ~]# df–h
系统所在磁盘
[root@ahdx-yqzl ~]# fdisk–l
如果是LVM格式可以使用pvdisplay来查看
8
1.1.8.用户、组相关操作
增加一个用户
[root@ahdx-yqzl ~]# useradd bossnmv3
注:默认情况下增加的用户的主目录会在/home目录下,如果要修改可以使用如下参数 [root@ahdx-yqzl ~]# useradd bossnmv3–d /opt/bossnmv3
注:默认情况下useradd username以后会自动新建一个与username名称一样的group name,如果要加入到别的组可以使用如下参数
[root@ahdx-yqzl ~]# useradd bossnmv3–d /opt/bossnmv3 –g bossnm
注:默认情况下新增用户使用的是bsh,如果想使用其他sh,可以使用如下参数 [root@ahdx-yqzl ~]# useradd bossnmv3–d /opt/bossnmv3 –g bossnm–s /bin/ksh
注:在vsftp环境下想新建用户,但不需要新增的用户能够登陆主机,所以就不需要这个用户在主目录生成它自己的环境变量,可以使用如下参数
[root@ahdx-yqzl ~]# useradd bossnmv3–d /opt/bossnmv3 –g bossnm–M
修改某用户的密码
[root@ahdx-yqzl ~]#passwd bossnmv3
1.1.9.修改主机名
方法一:
[root@ahdx-yqzl ~]hostnameoratest
注:用命令修改主机名只在重启network前或重启主机前生效,如果需要长期修改建议修改配置文件 方法二:
[root@ahdx-yqzl ~]vi /etc/sysconfig/network 修改HOSTNAME字段,重启network生效
配置主机hosts
[root@ahdx-yqzl ~]vi /etc/hosts 增加IP hostname
1.1.10.网络链路聚合的设置
1、在/etc/sysconfig/network-scripts/目录下新建ifcfg-bond0文件并按照如下编辑 [root@ahdx-yqzl ~]vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=172.31.0.13
NETMASK=255.255.252.0 BROADCAST=172.31.3.254 ONBOOT=yes TYPE=Ethernet
9
2、按照如下修改/etc/sysconfig/network-scripts/下的ifcfg-eth0,ifcfg-eth1(本例假设是将eth0和eth1聚合)
[root@ahdx-yqzl ~]vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
BOOTPROTO=none
HWADDR=D8:D3:85:FC:89:42 ONBOOT=yes MASTER=bond0 SLAVE=yes TYPE=Ethernet USERCTL=no
[root@ahdx-yqzl ~]vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1
BOOTPROTO=none
HWADDR=D8:D3:85:FC:89:52 ONBOOT=yes MASTER=bond0 SLAVE=yes TYPE=Ethernet USERCTL=no
3、修改modules.conf文件新增如下内容 [root@ahdx-yqzl ~]vi /etc/modules.conf alias bond0 bonding
options bond0 miimon=100 mode=1
说明:miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。 mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.
4、重启主机后生效
第二章 Linux系统检查
2.1主机硬件检查
方法一:
到机房现场查看主机有没有告警灯提示 方法二:
有的主机配置了管理口IP,可以远程通过web登陆查看主机状态
10
方法三:
查看系统日志,关键看日志中有没有IO error等字样 [root@ahdx-yqzl ~]more /var/log/messages
方法四:
根据不同的机型(IBM,DELL,HP)可以去官网或者找800索要硬件诊断工具,收集相关信息后发到800后台,定位硬件故障
2.2 操作系统关键日志检查
查看系统日志
[root@ahdx-yqzl ~]more /var/log/messages
查看系统最近100条登陆日志 [root@ahdx-yqzl ~]last -100
查看用户mail (如果主机关闭sendmail可能没有mail日志) [root@ahdx-yqzl ~]mail
2.3 操作系统性能检查
2.3.1 主机当前整体负载情况 [root@ahdx-yqzl ~]top
11
利用top可以获得以下关键数据 主机启动至今的时间:up 625 days 主机当前进程数:Tasks 257
CPU使用率:用户进程 us 1.5%,系统进程sy 11.1%,空闲进程 id 87.4% 内存(Mem)使用率:总共内存 total 16432976k,已使用 used 1294344k,空闲 free 3489532k,缓冲池 buffers 2101412k 交换区(Swap):总共交换区 total 16383992k,已使用 used 212k,空闲 free 16383780k,缓存 cached 9753692k
在top运行后,可以输入“-A”可以分列显示
12
2.3.2 CPU使用率
[root@ahdx-yqzl ~]sar -u 1 5 #每一秒一个输出,5秒内的CPU使用率
注:重点关注%idle CPU空闲
2.3.2 内存使用率 [root@ahdx-yqzl ~]free–m
注:剩余内存为free+buffers+cached
13
2.3.3磁盘I/O
[root@ahdx-yqzl ~]# iostat 1 5
注:重点关注%iowait
2.3.4 网卡流量
[root@ahdx-yqzl~]# sar -n DEV 1 3 #每一秒一个输出,3秒内的网卡流量
14
2.3.5 当前主机端口监听情况 [root@ahdx-yqzl ~]# netstat -an|greptcp
可以加-p参数得到监听端口对应的进程名和PID [root@ahdx-yqzl ~]# netstat -anp|grepLISTEN|greptcp
第三章 Linux卷管理
15
3.1pv相关操作
1、将磁盘/dev/sdb初始化成pv格式以便LVM管理 #pvcreate /dev/sdb
注:加-f参数为强制执行
2、扫描当前受LVM管理的pv #pvscan
[root@testshow ~]# pvscan
PV /dev/sda2 VG groupvg lvm2 [19.88 GB / 0 free] PV /dev/sdb lvm2 [10.00 GB]
Total: 2 [29.88 GB] / in use: 1 [19.88 GB] / in no VG: 1 [10.00 GB]
3、显示pv中pe,lv,vg之间的关系 #pvdisplay-m
4、删除一个pv
[root@testshow ~]# pvremove /dev/sdb
/dev/cdrom: open failed: Read-only file system
Attempt to close device '/dev/cdrom' which is not open. Labels on physical volume \"/dev/sdb\" successfully wiped
3.2 vg相关操作
1、创建一个vg
[root@testshow ~]# vgcreatetestvg -s 32M /dev/sdb1 Volume group \"testvg\" successfully created
16
注:-s为设置vg上的pe大小
2、显示vg信息
[root@ahdx-yqzl ~]# vgdisplay
3、增加删减vg中的pv
[root@testshow ~]# vgextendtesvg /dev/sdb2 #将/dev/sdb2这个pv扩充到testvg里 Volume group “testvg\" successfully extended
[root@testshow ~]# vgreducetesvg /dev/sdb2 #将/dev/sdb2这个pv从testvg中移除 Removed \"/dev/sdb2\" from volume group “testvg”
4、vg的激活与去激活
[root@testshow ~]#vgchange–ay testvg # 设置vg为active状态 1 logical volume(s) in volume group “testvg\" now active
[root@testshow ~]#vgchange–antestvg #设置vg为非active状态
5、删除vg
[root@testshow ~]#vgremovetestvg
Volume group “testvg\" successfully removed
6、vg导入导出 1、vg导入
[root@testshow ~]#vgexporttestvg
2、vg导出
[root@testshow ~]#vgimporttestvg
17
3.3 lv相关操作
1、创建lv
[root@testshow ~]# lvcreate -L 9.96G -n testlvtestvg #在testvg上创建一个testlv Rounding up size to full physical extent 9.97 GB Logical volume \"testlv\" created
注:-L参数为指定lv大小,-n参数为指定lv的名称
2、扫描当前lv情况
[root@testshow ~]# lvscan
ACTIVE '/dev/testvg/testlv' [9.97 GB] inherit ACTIVE '/dev/groupvg/syslv' [4.88 GB] inherit ACTIVE '/dev/groupvg/varlv' [3.91 GB] inherit ACTIVE '/dev/groupvg/homelv' [2.91 GB] inherit ACTIVE '/dev/groupvg/optlv' [6.25 GB] inherit ACTIVE '/dev/groupvg/swaplv' [1.94 GB] inherit
3、显示lv相信信息
[root@testshow ~]# lvdisplay /dev/testvg/testlv
4、格式化lv
新创建的lv需要格式化才能使用
[root@testshow ~]#mkfs.ext3 /dev/testvg/testlv #将lv格式化成ext3格式
18
3.4 lv大小调整
3.4.1 扩lv空间
[root@testshow /]# lvextend -L +192M /dev/testvg/testlv #给testlv增加192M空间 Extending logical volume testlv to 9.97 GB Logical volume testlv successfully resized
[root@testshow /]# resize2fs -p /dev/testvg/testlv#刷新LV配置,及时生效
注:增加lv的空间必须保证lv所在的vg中有足够的大小。另外需要注意“-L”参数后面如果没有“+”这个符号,就表示要把lv设置成192M,而不是增加192M。
3.4.2 缩lv空间
1、umount文件系统 #umount /dev/testvg/testlv
2、强制检查LV.
#e2fsck -f /dev/testvg/testlv
[root@testshow /]# e2fsck -f /dev/testvg/testlv e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 11/1245184 files (9.1% non-contiguous), 77353/2490368 blocks
19
3、缩小文件系统
[root@testshow /]# resize2fs /dev/testvg/testlv 9G #将/dev/testvg/testlv文件系统缩小到9G resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/testvg/testlv to 2359296 (4k) blocks. The filesystem on /dev/testvg/testlv is now 2359296 blocks long. 注:resize2fs不加参数时表示文件系统缩小到9G
4、缩小lv
[root@testshow /]# lvresize -L 9G /dev/testvg/testlv #将testlv缩小到9G WARNING: Reducing active logical volume to 9.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce testlv? [y/n]: yes Reducing logical volume testlv to 9.00 GB Logical volume testlv successfully resized
第四章 Linux双机配置
4.1 Linux双机准备工作
1、硬件坏境
a、至少两台带有硬件管理口(IBM是IMM,HP是Lio,DELL是CMC)的PCserver b、5个同网段的IP,2个给网卡使用,2个给管理口使用,1个作为服务地址
2、配置管理口地址
以IBM IBMX3950 X5为例,其他HP,DELL都类似
IMM管理端口默认IP:192.168.70.125 用户名:USERID 密码:PASSW0RD
注意字母为大写,密码中的“0”是数字0
HP管理口默认IP是192.168.0.1 (可以在系统启动时看到),用户名,密码在机器的吊牌上 DELL管理口默认IP是DHCP的(可以在主机的BIOS中看到),用户名:root,密码:calvin
20
另外刀片IBM,HP,DELL三个厂商的刀片管理口也都类似 进入管理口界面以后,修改管理口IP
3、配置两台主机的hosts 编辑:/etc/hosts
注:管理口的IP在hosts中别名是fence,其他IP按照用途区分别名
4.2 Cluster双机的配置
Cluster的配置在图形界面完成,如果远程访问图形界面,可以配置VNC来访问,配置方法参见《Linux安装规范v4.0》 1、 启动cluster程序
在图形界面的终端窗口中,输入“system-config-cluster”弹出如下对话框,选择Create New Configuration选项,创建一个Cluster
21
2、 将两个节点加入到Cluster Nodes(节点名同主机名,并且与hosts中配置的名字一一对
应)中,Quornm Votes不需要设置:
3、添加Fence Devices,根据服务器的不同选择不同的设备,hp使用ilo口,ibm使用bmc芯片,要在准备工作中将管理口IP设好,IBM和DELL服务器在这个选项中选择ipmilan,HP服务器在这里选择HP LIO Device
22
4、将NODE和相应的Fence Device关联起来
5、建立一个Failover Domain域,将两节点加入到Domain中
23
6、添加切换资源池
资源池中有很多类型,有IP,FS,Scripts等,需要一一配置
7、创建服务并向服务中添加资源
24
注意右上角的Failover Domain,使用下拉键选择刚刚建立的域
8、保存集群配置文件,文件将放在/etc/cluster/中
25
9、将配置文件拷入到其他节点中的相应位置:/etc/cluster/
4.3 Cluster双机服务起停
启动和停止服务是时是有先后顺序的
启动双机服务先启动cman,再启动rgmanager服务 servicecman start
servicergmanager start
停止双机服务先停止rgmanager服务,再停止cman servicergmanager stop servicecman stop
4.3 Cluster双机切换操作
1、在某个节点中启动/停止双机资源中的某个服务
#clusvcadm -e trssvc -m webdb2 #在webdb2 上启动trssvc这个服务 #clusvcadm -s trssvc -m webdb2 #在webdb2 上停止trssvc这个服务
2、在不停双机的情况下重启资源中的某个服务
#clusvcadm -R trssvc #重启trssvc这个服务
3、双机资源中的服务在节点中切换
#clusvcadm -r trssvc -m webdb2 #将运行在webdb1 上的trssvc服务切换到webdb2 上
第五章 Linux参数调整
5.1 ulimit参数调整
5.1.1 修改主机最大进程数,最大文件打开数 修改主机进程最大数,文件打开数 vi /etc/security/limits.conf # 添加如下的行 * softnoproc 11000 * hardnoproc 11000 * softnofile 4100 * hardnofile 4100 说明:
* 代表针对所有用户
26
noproc是代表最大进程数 nofile是代表最大文件打开数
5.1.2 限制用户创建文件大小
#ulimit–f 1000 #限制当前用户创建文件大小在1000个block以内 说明:
在 Linux 系统下一个 block 的默认大小是 512 bytes。例子中所能创建的文件size的最大值为 512 x 1000 = 512000 bytes。
5.1.3 限制用户的管道缓冲区大小
#ulimit–p 512 #限制管道缓冲区的大小为 512 Kbytes
5.1.4 限制进程最大可用的虚拟内存
#ulimit–v 200000 #限制最大可用的虚拟内存为 200000 Kbytes
5.2 修改系统内核参数
修改系统内核参数多数用于oracle数据库的安装,修改值参考oracle安装手册的要求#vi /etc/sysctl.conf
kernel.shmall=2097152 #系统一次可以使用共享内存总量,一般不需修改 kernel.shmmax=4294967296#共享内存段最大尺寸,这里设为4G
kernel.shmmni=4096 #共享内存段最大数量,默认即可,不需修改 kernel.sem=250 32000 100 128 #信号量 fs.file-max=6815744#可以打开的文件数量 fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144 #默认接收窗口大小 net.core.rmem_max=4194304 #接收窗口最大大小
net.core.wmem_default=262144 #默认发送窗口大小 net.core.wmem_max=1048586#发送窗口最大大小
执行以下命令使设置生效:/sbin/sysctl -p
27
第六章 Linux故障处理
6.1主机网络故障处理
模拟场景一:用户申告服务器连不上,ping不通 处理过程:
1、 先用安全平台或者SecureCRT看能否登陆,排除用户地址限制或者操作不当。 2、 登陆到与故障估计相同网段的主机上去ping故障主机,判断是否是网络限制。 3、 远程无法连接的情况下,去现场连显示器登陆主机,排除是否是主机宕机导致。 4、 无宕机的情况下,在图形界面打开终端窗口,ping网关是否ping通。
5、 网关ping不通情况下,重启network服务,跟踪后台日志,看网卡启动过程中有没有报
错信息,排除网卡故障和链路故障
6、 观察主机网线接口指示灯闪烁是否正常,如不闪烁,拔插网线,观察是否恢复;如网卡
灯不闪烁,换一个网线接交换机,排除网线和交换机端口问题。
7、 以上步骤都完成后仍然无法恢复网络,可以联系网络维护人员一起协查。
模拟场景二:服务器无法和指定IP通信 处理过程:
1、 在服务器上ping对端IP,看是否能ping通。
2、 利用traceroute IP 命令跟踪主机到对端IP的路由,看在哪一段路由无法到达。 3、 观察路由最后一跳和指定IP是否一致或同一网段。 4、 如果路由不可达,可以联系网络管理员协查
模拟场景三:无法访问服务器某端口 处理过程:
1、 在同网段的其他主机上telnet 故障主机的IP+端口(telnet IP port),排除端口是否处于
监听状态。
2、 利用netstat–an 查看端口是否在正确的网卡上处于LISTEN状态
3、 如果端口监听正常,联系网络管理员查看端口是否在防火墙上被屏蔽;如果端口监听不
正常,建议用户重启应用进程。
6.2 主机宕机故障
模拟场景一:用户申告服务器连不上,ping不通 处理过程:
1、 先用安全平台或者SecureCRT看能否登陆,排除用户地址限制或者操作不当。 2、 登陆到与故障估计相同网段的主机上去ping故障主机,判断是否是网络限制。 3、 远程无法连接的情况下,去现场连显示器登陆主机,排除是否是主机宕机导致。 4、 如果主机宕机,观察主机有没有告警灯,排除硬件故障。
5、 如果连显示器没有显示,键盘鼠标没有反应,基本上主机已经宕机。长按主机电源开关
键强制重启主机。
6、 跟踪观察主机重启过程,尤其是主机硬件自检过程中有没有报错信息。
7、 主机硬件自检通过后,启动操作系统时,观察操作系统启动中有没有报错信息。
28
8、 系统启动完毕后,查看/var/log/messages中在宕机时间段内有没有错误信息。 9、 通过ITSM的历史性能分析,观察主机在宕机时间段的交换区负载是不是过高。
6.3 HBA卡光纤链路故障
模拟场景一:主机一条链路丢失
1、 通过multipath –ll观察聚合路径中哪些多路径的盘的状态时ghost
2、 通过pvscan观察有没有device是failed状态
3、 根据multipath –ll可以看到device对应的路径4:0:3:3有ghost状态,路径第一个数字4
代表了host4的光纤卡,去机房观察host4的光纤卡指示灯闪烁是否正常。 4、 如果HBA接有SAN环境,检查SAN到存储的光路是否正常。 5、 登陆存储检查存储的光纤卡是否正常。
注:本例中是两块HBA卡接入SAN环境,SAN到存储有4条路径,所以当存储一端有问题的时候,会有两条路径不可用。
29
因篇幅问题不能全部显示,请点此查看更多更全内容