前言
最近工作關係開始又要回味 CentOS 了,在本次實作環境中採用的是 CentOS-6.8-x86_64-minimal.iso 映像檔,也就是 CentOS 6.8 最小化安裝版本 (Minimal Install)。為何不用最新的 CentOS 6.9 版本? 因為,最新的 LIS 4.1.3-2 僅支援至 CentOS 6.8,所以便以 CentOS 6.8 版本開始回味起了,那麼開始來玩玩吧。💪實作環境
調整 I/O Scheduler 為 Noop 加速 Disk I/O
由於本文的運作環境為 Windows Server 2016 Hyper-V虛擬化平台。因此,根據官方最佳作法 Best Practices for running Linux on Hyper-V | Microsoft Docs 以及 What is the suggested I/O scheduler to improve disk performance when using Red Hat Enterprise Linux with virtualization?文件內容可知,建議將 CentOS I/O Scheduler調整為 Noop以便加速 Disk I/O。# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
# echo "noop"> /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq
但是,上述方式只是調整 CentOS 運作中的 I/O Scheduler,倘若 CentOS 主機重新啟動時又會恢復預設值。因此,請修改「/etc/grub.conf」設定檔在 kernel 結尾加上「elevator=noop」,才能避免 CentOS 主機重新啟動時恢復為 cfq 預設值,調整完成後請重新啟動 CentOS 主機。
# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,1)
# kernel /vmlinuz-version ro root=/dev/sda5
# initrd /initrd-[generic-]version.img
#boot=/dev/sda1
device (hd0) HD(1,800,80000,f87645d3-bace-4270-afee-66a2bb515513)
default=0
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,1)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=dcd36422-f747-400c-83c3-b50450b806d0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet elevator=noop
initrd /initramfs-2.6.32-642.el6.x86_64.img
檢查相關組態設定是否正確套用
至此,整個 CentOS 基礎設定大致完成,接著讓我們一一檢查先前的調整及組態設定等相關動作是否套用生效。檢查 SELinux 安全機制運作狀態
確認 SELinux 安全機制為「寬容模式」(permissive)的運作狀態,當然若是屆時要運作線上營運服務的話,請記得調整為「強制模式」(enforcing)。# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted
檢查 IPTables 防火牆允許通過的 Port 號
檢查 IPTables 防火牆是否允許了 SSH 等 Port 號,屆時再依所架設的系統服務開啟相對應的 Port 號(如 Web 為 TCP Port 80)即可。# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22168
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
檢查 CentOS 主機開機時自動帶起的系統服務
檢查 CentOS 主機於 Runlevel 3啟動模式下,系統開機時會自動帶起的服務清單,若仍有看到不該啟動的系統服務則應該了解用途後關閉它們。# chkconfig --list | grep 3:on
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
hv_fcopy_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
hv_kvp_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
hv_vss_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
檢查 CentOS 主機 IPv6 網路功能是否關閉
檢查 CentOS 主機的 IPv6網路功能是否已經關閉了,至於 sysctl指令查詢結果則應沒有找到任何資訊才對。# lsmod |grep ipv6
ipv6 336282 0
# sysctl -a |grep ipv6
檢查 CentOS 主機開啟的 Port 號
經過我們將相關服務停止及關閉後,目前 CentOS 主機應該只有開啟 2 個 Port 號,也就是只有遠端連線的 SSH(Port 22168)以及發送主機日誌資訊的 Localhost SMTP(Port 25)。# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22168 0.0.0.0:* LISTEN 991/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1072/master
檢查 LIS 整合服務是否運作
首先,確認安裝好的 LIS 整合服務是否會開機自動啟動。# chkconfig --list |grep hv_
hv_fcopy_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
hv_kvp_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
hv_vss_daemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
然後,確認一下 LIS 整合服務的相關執行程序是否運作中。
# ps aux |grep hv
root 129 0.0 0.0 0 0 ? S 15:23 0:00 [hv_vmbus_con/0]
root 130 0.0 0.0 0 0 ? S 15:23 0:00 [hv_vmbus_con/1]
root 505 0.0 0.0 0 0 ? S 15:24 0:00 [hv_balloon]
root 959 0.0 0.0 13240 1460 ? Ss 15:24 0:00 /usr/sbin/hv_kvp_daemon
root 973 0.0 0.0 6220 584 ? Ss 15:24 0:00 /usr/sbin/hv_vss_daemon
檢查 CentOS 主機 I/O Scheduler 是否調整為 Noop
確認 CentOS 主機的 I/O Scheduler 在重新啟動後,是否仍會套用 Noop 模式確保良好的 Disk I/O。# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq