h3c-R4900-G3-安装系统

默认IPMI管理口默认ip地址为:192.168.1.2,缺省用户名:admin密码:Password@_

Raid卡配置过程

服务器使用P460-M2阵列卡

首先启动Server在启动界面,按键盘ESC或Del键进入BIOS。

D931B38EDDC149D39C1E9D37C2335B84.jpeg

BIOS设置界面修改系统语言“简体中文”:

5F7D8AE7032B4F339F5E4267A765D66B.jpeg

设置启动模式为“LEGACY”传统模式,F4 保存并退出重启服务器。

2AF7641FAF9C49B19CE29FC7204FB41F.jpeg

在服务器开机自检开始,很快会进入RAID卡自检过程,此时显示器上会出现 Ctrl + A 提示,按键盘 Ctrl + A 进入RAID设置界面如下图:

385AC45982864B53A871DEC36DA34960.jpeg

5AA41ED55CB34F2FB06B797B86F6B635.jpeg

设置 Port Mode 模式为 RAID

A500AB170C6E4A8FAE478FEC5EF71360.jpeg

开始创建 RAID5

E4044CD2CA57412B80C898A199274F0C.jpeg

423EB2B8F69C4FE787CFB4D9D7BEE2BC.jpeg

B068F13244234D56B7EB5F3C3DEC4A74.jpeg

按键盘空格键选择硬盘,然后回车选择 RAID 级别 5

3FBAB9A2FC1F4768B61FD2492330A2C9.jpeg

一路回车,接下来选择都是默认即可。

0DB2A040648144A9A92EDE88E5C19CEE.jpeg

到此RAID5创建成功,保存退出。

U盘刻录iso文件

刻录中需要注意的问题

由于install.win文件大小超过4g,使用ultraiso软件刻录完毕后需要将U盘转换成ntfs格式后重新传入install.win文件

convert e: /fs:NTFS (e是u盘盘符)

出现报错用CHKDSK /F修复

切换目录到E盘

cd /d e:/

修复磁盘

CHKDSK /F

然后再执行convert e: /fs:NTFS

Raid卡windows2016驱动

安装windows2016时需要额外加载阵列卡驱动

(注意此驱动文件需要将最底层的smartpqi文件夹解压出来使用)

https://www.h3c.com/cn/d_202006/1306872_30005_0.htm

安装过程不在赘述

网卡NIC-GE-4P-360T-L3驱动

http://www.h3c.com/cn/d_201909/1231876_30005_0.htm

下载NIC-GE-4P-360T-L3&Drv&Win&1.6.31.0 (1.27 MB)  下载后解压至文件夹NIC-GE-4P-360T-L3&Drv&Win&1.6.31.0 – Windows 2016,安装驱动需在设备管理器中查找此文件夹方式安装即可。

主板芯片组

http://www.h3c.com/cn/d_201712/1048898_30005_0.htm

下载Chipset&Drv&Win&10.1.2.85.rar(3.11 MB)  下载后解压至文件夹Chipset&Drv&Win&10.1.2.85,安装时直接双击SetupChipset.exe即可。

安装ubuntu-18.04.5

Ubuntu 安装时出现“failed to load ldlinux.c32”

Failed to load ldlinux.c32
Boot failed: please change disks and press a key to continue.

尝试在ultraiso刻录时将写入方式修改为raw依然报错

最后使用win32diskimager重新刻录后安装正常

firewalld限制ip访问某个端口

查看防火墙当前配置

firewall-cmd --list-all

添加80端口为允许

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=80-90/tcp --permanent

删除80端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

添加对应ip的规则

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.91" port protocol="tcp" port="22" accept"

重启防火墙

firewall-cmd --reload

dell r720 h310raid卡配置raid5写性能极差

戴尔服务器上的RAID卡被称作baiPERC (PowerEdge Expendable RAIDController的缩写)。12G服务器的PERC卡按性du能分成了以下几种:

  1. PERC S110 – 基于芯片组和dao驱动的软RAID,用于Windows系统中,适合入门用户
  2. PERC H310 – 入门级硬件RAID卡(支持raid0、1、5、10、50)。由于没有缓存,RAID5随机写性能比较有限
  3. PERC H710 – 中端级硬件RAID卡。拥有512MB的读写缓存,因此RAID5随机读写性能有相当大的提高,能满足一般业务应用的需求。
  4. PERC H710P/H810 – 高端硬件RAID卡。其中H710P用来连接服务器内部硬盘,H810用来连接外挂的MD1x00系列磁盘柜。它们拥有1GB的读写缓存和一系列高级功能,能满足大部分高IOPS和高带宽业务应用的需求。
    所以咯!H310没有缓存,RAID5随机写性能比较有限,速度就慢。做raid5建议H710卡!

centos7系统无法进入系统处理-PTE Read access is not set

Centos 7系统重启无法进入系统,报错boot和swap分区无法识别

报错信息:

a01f4ea8c636baf77a0c3087aeccb01

机器bios版本号:

Raid卡版本号:

系统版本:

[root@192-168-2-181 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@192-168-2-181 ~]# uname -a

Linux 192-168-2-181 3.10.0-327.36.1.el7.x86_64 #1 SMP Sun Sep 18 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

尝试救援模式修复系统,问题依然存在

DMAR:[fault reason 06] PTE Read access is not set

最后根据网上文档修改grub配置文件

将默认intel_iommu=on参数修改为intel_iommu=off

重启后正常进入系统

根据参数推断应该是系统内核版本太低,bios版本太高,待验证

Ps:http://blog.chinaunix.net/uid-31410005-id-5819630.html

centos系统lvm卷调整

服务器ceph健康状态报警clipboard.png登录服务器发现报警为系统分区使用率超过阈值clipboard.png

/home默认目录查看并没有文件

卸载/home目录

umount /home/


注释开机启动挂载项

clipboard.png


删除home逻辑卷

lvremove /dev/centos/home
clipboard.png


查看当前物理卷使用情况

pvscan
clipboard.png


可以看到空闲80G空间

lvextend -l +100%free /dev/centos/root


将剩余空间全部划分给root逻辑卷

clipboard.png


确认分区文件格式为xfs

clipboard.png
xfs_growfs /


同步文件系统

clipboard.png

需要注意的内容:


当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录:


########################################################


特别注意的是:

resize2fs 命令            针对的是ext2、ext3、ext4文件系统

xfs_growfs 命令         针对的是xfs文件系统


########################################################


1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持)

lvextend -L 120G /dev/mapper/centos-home     #增大至120G
lvextend -L +20G /dev/mapper/centos-home     #增加20G  lvreduce -L 50G /dev/mapper/centos-home      #减小至50G
lvreduce -L -8G /dev/mapper/centos-home      #减小8G
resize2fs /dev/mapper/centos-home            #执行调整


2)xfs文件系统的调整命令是xfs_growfs(只支持增大)

lvextend -L 120G /dev/mapper/centos-home     #增大至120Glvextend -L +20G /dev/mapper/centos-home     #增加20G

xfs_growfs /dev/mapper/centos-home           #执行调整

就是说:xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!)。

硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,

这样的话这个逻辑分区上原来的数据就丢失了。如果有重要文件,那就歇菜喽~~~

物理卷(Physical Volume,PV)


指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group,VG)


类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

逻辑卷(Logical Volume,LV)


类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

Linux IO实时监控iostat命令详解

简介

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

 

语法

iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]

 

入门使用

iostat -d -k 2

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

输出如下

iostat -d -k 1 10
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              39.29        21.14         1.44  441339807   29990031
sda1              0.00         0.00         0.00       1623        523
sda2              1.32         1.43         4.54   29834273   94827104
sda3              6.30         0.85        24.95   17816289  520725244
sda5              0.85         0.46         3.40    9543503   70970116
sda6              0.00         0.00         0.00        550        236
sda7              0.00         0.00         0.00        406          0
sda8              0.00         0.00         0.00        406          0
sda9              0.00         0.00         0.00        406          0
sda10            60.68        18.35        71.43  383002263 1490928140

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             327.55      5159.18       102.04       5056        100
sda1              0.00         0.00         0.00          0          0

输出信息的意义

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)

 

指定监控的设备名称为sda,该命令的输出结果和上面命令完全相同。

 iostat -d sda 2

默认监控所有的硬盘设备,现在指定只监控sda。

 

-x 参数

iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。

iostat -d -x -k 1 10
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          1.56  28.31  7.80 31.49   42.51    2.92    21.26     1.46     1.16     0.03    0.79   2.62  10.28
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          2.00  20.00 381.00  7.00 12320.00  216.00  6160.00   108.00    32.31     1.75    4.50   2.17  84.20

 

输出信息的含义

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:每秒读取的扇区数;
wsec/:每秒写入的扇区数。
rKB/s:The number of read requests that were issued to the device per second;
wKB/s:The number of write requests that were issued to the device per second;
avgrq-sz 平均请求扇区的大小
avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。    
await:  每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
         这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
svctm    表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,         系统上运行的应用程序将变慢。
%util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度
。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

 

-c 参数

iostat还可以用来获取cpu部分状态值:

iostat -c 1 10
avg-cpu: %user %nice %sys %iowait %idle
1.98 0.00 0.35 11.45 86.22
avg-cpu: %user %nice %sys %iowait %idle
1.62 0.00 0.25 34.46 63.67

 

常见用法

iostat -d -k 1 10         #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2            #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态

 

 

实例分析

ostat -d -k 1 |grep sda10
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda10            60.72        18.95        71.53  395637647 1493241908
sda10           299.02      4266.67       129.41       4352        132
sda10           483.84      4589.90      4117.17       4544       4076
sda10           218.00      3360.00       100.00       3360        100
sda10           546.00      8784.00       124.00       8784        124
sda10           827.00     13232.00       136.00      13232        136

上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。

 

iostat -d -x -k 1
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          1.56  28.31  7.84 31.50   43.65    3.16    21.82     1.58     1.19     0.03    0.80   2.61  10.29
sda          1.98  24.75 419.80  6.93 13465.35  253.47  6732.67   126.73    32.15     2.00    4.70   2.00  85.25
sda          3.06  41.84 444.90 54.08 14204.08 2048.98  7102.04  1024.49    32.57     2.10    4.21   1.85  92.24

可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。

Centos 7安装后的几点优化

Centos7相对之前的5和6改动比较大,所以单独新开一章单独来表

修改主机名

hostnamectl set-hostname moneypy

关闭selinux

临时关闭

setenforce 0

查看当前状态

getenforce

永久关闭

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.安全配置修改ssh端口

sed -i 's/# Port 22/Port 20002/g' /etc/ssh/ssh_config
sed -i 's/#Port 22/Port 20002/g' /etc/ssh/sshd_config
systemctl restart sshd
systemctl status sshd
firewall-cmd --zone=public --add-port=20002/tcp --permanent
firewall-cmd --reload

修改默认端口22为20002,添加20002到防火前例外

2.修改软件源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

 

Centos安装简单易用的端口转发工具:rinetd

Centos系统自带的iptables也可以做端口转发,但配置繁琐复杂.以前我一直再用, 烧死了不少脑细胞.有时候遇到个别的系统环境还总是遇到莫名其妙的问题.今天知道了另外一个简单易用的工具:xinetd
安装步骤:

xinet安装步骤

yum install gcc
wget https://boutell.com/rinetd/http/rinetd.tar.gz
tar -xvf rinetd.tar.gz
cd rinetd
sed -i 's/65536/65535/g' rinetd.c
mkdir /usr/man/
make && make install

以上6条命令就是所有的安装步骤,至此就已经安装完毕.安装时会有个warning的提示,不影响使用,不用理会.
编辑端口转发配置文件:vi /etc/rinetd.conf
输入:0.0.0.0 80 127.0.0.1 8090

1.1.1.1 80 2.2.2.2 80
1.1.1.1自己监听
2.2.2.2转发源

配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]
简单翻译一下:源IP 源端口 目标IP 目标端口
每行一条转发规则.
启动和关闭转发程序:
启动:rinetd -c /etc/rinetd.conf
关闭:killall rinetd
检验端口转发程序是否正确运行:netstat -tanulp|grep rinetd

iptables端口转发

网络拓扑

服务器A有两个网卡
    内网ip:192.168.1.3
    外网ip:10.138.108.103
    本地回环:127.0.0.1

服务器B有网卡,8001提供服务
    内网ip:192.168.1.1

目的

使用户通过外网10.138.108.103:8001访问内网服务器192.168.1.1:8001

思路

 

如图2所示,端口转发走的是下发A路,利用nat表中prerouting做dnat,用postrouting做snat

包分析

开启内核转发

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

运行脚本

#!/bin/bash
pro='tcp'

src_host1='192.168.1.3'
src_host2='10.138.108.103'
src_port=8001

Dst_Host='192.168.1.1'
Dst_Port=8001

# 清空规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

# Destination network  address translate (dnat)

# 如图2所示
iptables -t nat -A PREROUTING  -p $pro -d $src_host1  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A PREROUTING  -p $pro -d $src_host2  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port


iptables -A FORWARD -p $pro -d $Dst_Host --dport $Dst_Port -j ACCEPT

# 本地连接不经过prerouting,只经过output链,所以想要在服务器A通过本地ip访问服务器B需要在output 链增加dnat规则
iptables -t nat -A OUTPUT -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A OUTPUT -p $pro -d $src_host2 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port



# source network address translate (snat)
iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host1

# 显示已有规则
iptables -t nat -L -n --line-number