Linux Centos7 常见运维问题场景&解决(建议收藏)
Linux Centos7 常见运维问题场景&解决.适合运维以及后端开发人员
文章目录
1 scp 拷贝一个文件或文件夹到另外一个服务器
scp [option] /path/to/source/file user@server-ip:/path/to/destination/directory
/path/to/source/file– 这是打算复制到远程主机的源文件。
user@server-IP:– 这是远程系统的用户名和 IP 地址。请注意 IP 地址后面加冒号。
/path/to/destination/directory– 这是文件将复制到的远程系统上的目标目录。
例如将当前目录下的 test_dir 文件夹拷贝到192.168.1.44服务器上的 /root目录下,那命令为:
scp -r test_dir root@192.168.1.44:/root/
2 Centos7配置阿里云yum源
cd /etc/yum.repos.d/
mkdir repo_back
mv *.repo repo_back/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
# 依赖更新,比较费时(可选)
# yum update
2 无网络环境的服务器下载依赖包-方式一
可以先用另外一台有网络的服务器,把先下载rpm依赖包到本地目录,然后将rpm依赖包上传到无网络环境的服务器,最后在无网络环境的服务器上离线安装rpm包。
下载依赖包到本地的命令有种命令,第一个是repotrack,第二个是yumdownloader (推荐)
repotrack 依赖包名称
yumdownloader --resolve 依赖包名称
例如下载 centos-release-scl 依赖包
#repotrack方式
repotrack centos-release-scl
# yumdownloader 方式(推荐)
yumdownloader --resolve centos-release-scl
然后把依赖包上传到无网络环境的服务器,在服务器上下执行以下命令
#非强制安装(一般要求操作系统内核版本一致,才能安装成功)
rpm -ivh ./*.rpm
#强制安装(慎用!慎用!慎用!强烈建议不要使用强制方式进行安装,因为可能直接把你服务器干报废)
rpm -ivh ./*.rpm --force --nodeps
3 无网络环境的服务器下载依赖包-方式二
3.1 挂载iso镜像文件配置本地yum源


# 创建挂载文件夹
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/sr0 /media/cdrom/
mount: /media/cdrom: /dev/sr0 已挂载于 /run/media/root/Kylin-Server-10.

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir repo_backup
[root@localhost yum.repos.d]# mv *.repo repo_backup/
[root@localhost yum.repos.d]# vim myCustom.repo
# myCustom.repo 文件内容如下
[local]
name=Instructor Server Repository
baseurl=file:///media/cdrom/
enabled=1
gpgcheck=0
# =============内容结束===============
[root@localhost yum.repos.d] yum clean all
0 文件已删除
[root@localhost yum.repos.d]# yum repolist
仓库标识 仓库名称
local Instructor Server Repository
通过yum命令下载依赖包
3.2 上传iso镜像、挂载并配置本地yum源
[root@localhost ~]# mkdir -p /mnt/cdrom/Server
[root@localhost ~]# cd /mnt/cdrom/Server
上传镜像到 /mnt/cdrom/Server 目录下
非永久挂载方式:
[root@localhost Server]# mount -o loop /mnt/cdrom/Server/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt/cdrom/
mount: /mnt/cdrom/: /mnt/cdrom/Server/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso 已经挂载.
永久挂着方式:
vim /etc/fstab
#文件最后添加以下内容
/mnt/cdrom/Server/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt/cdrom iso9660 loop,ro 0 0
#保存并推出文件后,执行挂载命令
mount -a

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir repo_backup
[root@localhost yum.repos.d]# mv *.repo repo_backup/
[root@localhost yum.repos.d]# vim myCustom.repo
# myCustom.repo 文件内容如下
[local]
name=Instructor Server Repository
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0
# =============内容结束===============
[root@localhost yum.repos.d] yum clean all
0 文件已删除
[root@localhost yum.repos.d]# yum repolist
仓库标识 仓库名称
local Instructor Server Repository
通过yum命令下载依赖包
4 磁盘挂载-直接分区方式
当我们服务器用久之后,磁盘空间可能就不够用了,那么此时就可以将一块20G的硬盘挂载到我们的服务器上,依次来对我们的服务器磁盘进行扩容。
4.1 磁盘介绍
Linux硬盘设备文件
硬盘使用步骤:分区、格式、化挂载
lsblk //查看机器有所有硬盘
fdisk –l 查看磁盘使用情况
fdisk /dev/vdb
分区:
fdisk –l # 查看当前的分区状态,确定一下哪个盘还有空间
建分区的命令:fdisk 磁盘的名字(fdisk /dev/sdb sda vda vdb)
n — new 新建分区
D— delete 删除分区
P — print 显示分区信息
w—write 保存退出
Q—quit 不保存退出
实验1:
1:新增加二块硬盘
2、在/dev/sdb新建1G主分区
1)查看硬盘
[root@venus ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─cl-root 253:0 0 47G 0 lvm /
└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 7.7G 0 rom
4.2 添加20G硬盘

一直点击下一步
4.2 /dev/sdb分区
[root@venus ~]# fdisk /dev/sdb
Command (m for help): n //新建一个分区
Partition type
p primary (0 primary, 0 extended, 4 free) //主分区,最多四多
e extended (container for logical partitions) //扩展分区
Select (default p): 回车,选择默认主分区
Using default response p.
Partition number (1-4, default 1): 回车,选择默认分区号1
First sector (2048-41943039, default 2048): 回车,选择默认硬盘最前面开始分
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +1G # 这里也可以直接回车,代表全部分配 //分区大小
Created a new partition 1 of type 'Linux' and of size 1 GiB.
ommand (m for help): p 打印分区表
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf2197985
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 2099199 2097152 1G 83 Linux
Command (m for help): w //保存退出
4.3 在/dev/vdb2格式化
文件系统:文件在磁盘上存、取方法,
Windows最常用NTFS、FAT32
linux常用的格式:xfs ext3 ext4 vfat fat
格式化的命令:
mkfs –t 文件系统 分区
/dev/sdb1格式化成 xfs格式
[root@venus ~]# mkfs -t xfs /dev/sdb1
/dev/sdb2格式化ext4
[root@venus ~]# mkfs -t ext4 /dev/sdb2
4.4 挂载
mount:挂载----分区和一个目录关联过程
1)手动挂载:重启后就失效。
mount 分区 挂载点目录
例: /dev/sdb1挂载在 /c目录
[root@venus ~]# mkdir /c
[root@venus ~]# mount /dev/sdb1 /c
[root@venus ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 1014M 40M 975M 4% /c
2)自动挂载(永久挂载):需要修改配置文件/etc/fstab
[root@venus ~]# vi /etc/fstab
/dev/sdb1 /c xfs defaults 0 0
注:
分区名或UUID 挂载点目录 文件系统 defaults 0 0
第一个数字表示是否对该设备进行备份
第二个数字表示开机时是否检查该设备。
0表示否定,1表示肯定。
[root@venus ~]#mount –a
—马上挂载(如果出现报错请检查出错原因,执行后没报错表示挂载成功)
[root@venus ~]# df –h --查看挂载情况
注:删除分区/dev/sdb2:
1、删除fstab 条目
[root@venus ~]# vi /etc/fstab
2、卸载分区
[root@venus ~]# umount /dev/sdb2
3、删除分区/dev/vdb2
[root@venus ~]#fdisk /dev/sdb
d # 按d回车,代表删除分区
5 硬盘挂载-逻辑卷方式(推荐)
5.1 给服务器挂100G硬盘块

5.2 查看硬盘块
[root@acc-test-rx-client-2 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs tmpfs 1.4G 73M 1.4G 6% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 64G 9.5G 55G 15% /
tmpfs tmpfs 1.4G 32K 1.4G 1% /tmp
/dev/loop0 iso9660 4.1G 4.1G 0 100% /mnt/cdrom
/dev/vda1 xfs 1014M 199M 816M 20% /boot
tmpfs tmpfs 286M 0 286M 0% /run/user/994
tmpfs tmpfs 286M 0 286M 0% /run/user/0
[root@acc-test-rx-client-2 ~]#
[root@acc-test-rx-client-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 0 loop /mnt/cdrom
sr0 11:0 1 1024M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 99G 0 part
├─klas-root 253:0 0 63.9G 0 lvm /
├─klas-swap 253:1 0 3.9G 0 lvm [SWAP]
└─klas-backup 253:2 0 31.2G 0 lvm
vdb 252:16 0 100G 0 disk

【注】:如果没有看到新硬盘块,那么可以执行 rescan-scsi-bus.sh 命令让系统重新扫描盘
5.3 创建物理卷PV
[root@acc-test-rx-client-2 ~]# pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created.
[root@acc-test-rx-client-2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 klas lvm2 a-- <99.00g 0
/dev/vdb lvm2 --- 100.00g 100.00g
5.4 创建卷组VG
[root@acc-test-rx-client-2 ~]# vgcreate qagroup /dev/vdb
Volume group "qagroup" successfully created
[root@acc-test-rx-client-2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
klas 1 3 0 wz--n- <99.00g 0
qagroup 1 0 0 wz--n- <100.00g <100.00g
5.5 创建逻辑卷LV
[root@acc-test-rx-client-2 ~]# lvcreate -L +99.9G -n qa qagroup
Rounding up size to full physical extent 99.90 GiB
Logical volume "qa" created.
[root@acc-test-rx-client-2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
backup klas -wi-a----- 31.19g
root klas -wi-ao---- <63.89g
swap klas -wi-ao---- <3.92g
qa qagroup -wi-a----- 99.90g
5.6 格式化硬盘块
[root@acc-test-rx-client-2 ~]# mkfs -t xfs /dev/qagroup/qa
meta-data=/dev/qagroup/qa isize=512 agcount=4, agsize=6547200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=26188800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=12787, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.7 创建挂载目录
[root@acc-test-rx-client-2 ~]# mkdir /data
5.8 逻辑卷挂载到挂载目录
[root@acc-test-rx-client-2 ~]# vim /etc/fstab
# 在文件最后一行添加下面这一行
/dev/qagroup/qa /data xfs defaults 0 0
[root@acc-test-rx-client-2 ~]# mount -a
5.9 查看挂载是否成功
[root@acc-test-rx-client-2 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 12K 1.4G 1% /dev/shm
tmpfs tmpfs 1.4G 89M 1.4G 7% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 64G 9.4G 55G 15% /
tmpfs tmpfs 1.4G 32K 1.4G 1% /tmp
/dev/loop0 iso9660 4.1G 4.1G 0 100% /mnt/cdrom
/dev/vda1 xfs 1014M 199M 816M 20% /boot
tmpfs tmpfs 286M 0 286M 0% /run/user/994
tmpfs tmpfs 286M 0 286M 0% /run/user/0
/dev/mapper/qagroup-qa xfs 100G 746M 100G 1% /data
[root@acc-test-rx-client-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 0 loop /mnt/cdrom
sr0 11:0 1 1024M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 99G 0 part
├─klas-root 253:0 0 63.9G 0 lvm /
├─klas-swap 253:1 0 3.9G 0 lvm [SWAP]
└─klas-backup 253:2 0 31.2G 0 lvm
vdb 252:16 0 100G 0 disk
└─qagroup-qa 253:3 0 99.9G 0 lvm /data
6 硬盘扩容-逻辑卷方式(给根/root目录扩容100G)
6.1 说明
1、这里得纠正一下标题,其实并不是给 /root目录扩容100G,而是给 / 目录扩容100G。因为 /root并不是挂载目录, / 才是挂载目录。/root 目录在 / 目录下。/目录扩容了,其实/root也就跟着扩容了。
2、如果挂了100G硬盘,只给 / 目录扩容50G,例如硬盘块在/dev/vdc下,那么在创建物理卷之前,得先对硬盘块vdc进行硬盘分区,通过fdisk /dev/vdc命令创建 /dev/vdc1主分区,给/dev/vdc1分配50G,最后通过pvcreate /dev/vdc1命令来创建物理卷。
6.2 挂硬盘

6.2 查看硬盘块
[root@acc-test-rx-client-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 0 loop /mnt/cdrom
sr0 11:0 1 1024M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 99G 0 part
├─klas-root 253:0 0 63.9G 0 lvm /
├─klas-swap 253:1 0 3.9G 0 lvm [SWAP]
└─klas-backup 253:2 0 31.2G 0 lvm
vdb 252:16 0 100G 0 disk
└─qagroup-qa 253:3 0 99.9G 0 lvm /data
vdc 252:32 0 100G 0 disk
6.3 查看 根目录 所在的卷组和逻辑卷
[root@acc-test-rx-client-2 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 12K 1.4G 1% /dev/shm
tmpfs tmpfs 1.4G 105M 1.3G 8% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 64G 9.4G 55G 15% /
tmpfs tmpfs 1.4G 32K 1.4G 1% /tmp
/dev/loop0 iso9660 4.1G 4.1G 0 100% /mnt/cdrom
/dev/vda1 xfs 1014M 199M 816M 20% /boot
tmpfs tmpfs 286M 0 286M 0% /run/user/994
tmpfs tmpfs 286M 0 286M 0% /run/user/0
/dev/mapper/qagroup-qa xfs 100G 746M 100G 1% /data
[root@acc-test-rx-client-2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
backup klas -wi-a----- 31.19g
root klas -wi-ao---- <63.89g
swap klas -wi-ao---- <3.92g
qa qagroup -wi-ao---- 99.90g
根据上面目录打印内容可知,
/根目录 所在的逻辑卷位置:/dev/mapper/klas-root,
逻辑卷名称:root
卷组名称:klas
6.4 创建物理卷
[root@acc-test-rx-client-2 ~]# pvcreate /dev/vdc
Physical volume "/dev/vdc" successfully created.
[root@acc-test-rx-client-2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 klas lvm2 a-- <99.00g 0
/dev/vdb qagroup lvm2 a-- <100.00g 96.00m
/dev/vdc lvm2 --- 100.00g 100.00g
6.5 卷组扩容
[root@acc-test-rx-client-2 ~]# vgextend klas /dev/vdc
Volume group "klas" successfully extended
[root@acc-test-rx-client-2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
klas 2 3 0 wz--n- 198.99g <100.00g
qagroup 1 1 0 wz--n- <100.00g 96.00m
6.6 逻辑卷扩容
#(下面两行命令效果一样,选其中一个执行即可,路径都是软连接)
# [root@acc-test-rx-client-2 ~]# lvextend -L +99.9G /dev/mapper/klas-root 此命令和下面一行命令效果一样。
[root@acc-test-rx-client-2 ~]# lvextend -L +99.9G /dev/klas/root
Rounding size to boundary between physical extents: 99.90 GiB.
Size of logical volume klas/root changed from <63.89 GiB (16355 extents) to <163.79 GiB (41930 extents).
Logical volume klas/root successfully resized.
#让扩容生效(下面两行命令效果一样,选其中一个执行即可,路径都是软连接)
# [root@acc-test-rx-client-2 ~]# xfs_growfs /dev/mapper/klas-root
[root@acc-test-rx-client-2 ~]# xfs_growfs /dev/klas/root
meta-data=/dev/mapper/klas-root isize=512 agcount=4, agsize=4186880 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=16747520, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=8177, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 16747520 to 42936320
【注】:如果是ext4类型,扩容后用resize2fs让其生效。
6.7 查看扩容结果
[root@acc-test-rx-client-2 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 12K 1.4G 1% /dev/shm
tmpfs tmpfs 1.4G 121M 1.3G 9% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 164G 11G 154G 7% /
tmpfs tmpfs 1.4G 32K 1.4G 1% /tmp
/dev/loop0 iso9660 4.1G 4.1G 0 100% /mnt/cdrom
/dev/vda1 xfs 1014M 199M 816M 20% /boot
tmpfs tmpfs 286M 0 286M 0% /run/user/994
tmpfs tmpfs 286M 0 286M 0% /run/user/0
/dev/mapper/qagroup-qa xfs 100G 746M 100G 1% /data
可以看到
# 扩容前
/dev/mapper/klas-root xfs 64G 9.4G 55G 15% /
# 扩容后
/dev/mapper/klas-root xfs 164G 11G 154G 7% /
7 逻辑卷迁移
多个磁盘组成逻辑卷挂在到服务器上,那么当原有服务器报废前,需要将多个磁盘组成的逻辑卷从旧服务器迁移到新服务器上,从而保证后续新服务器能对数据的正常读写。
这里通过两台服务器进行演示:
- server1:模拟旧服务器,server1上有个逻辑卷,该逻辑卷由两块磁盘组成,均为1GB;
- sercer2:模拟新服务器。
server1磁盘最初情况:
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2.1G 0 part [SWAP]
└─sda3 8:3 0 27.6G 0 part /
sr0 11:0 1 1024M 0 rom
server2磁盘最初情况:
[root@server2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2.1G 0 part [SWAP]
└─sda3 8:3 0 27.6G 0 part /
sr0 11:0 1 1024M 0 rom
7.1 创建硬盘
Server1创建两块大小为1GB的硬盘,如图
7.2 创建逻辑卷并挂载
#查看磁盘情况(如果没有显示新硬盘,那么可以重启server1服务器)
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2.1G 0 part [SWAP]
└─sda3 8:3 0 27.6G 0 part /
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sr0 11:0 1 1024M 0 rom
#创建物理卷
[root@server1 ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
#查看物理卷
[root@server1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb myvg lvm2 a-- 1020.00m 1020.00m
/dev/sdc myvg lvm2 a-- 1020.00m 1020.00m
#创建卷组
[root@server1 ~]# vgcreate myvg /dev/sdb /dev/sdc
Volume group "myvg" successfully created
#查看卷组
[root@server1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 1.99g 1.99g
#创建逻辑卷
[root@server1 ~]# lvcreate -L +1.99G -n mylv myvg
Rounding up size to full physical extent 1.99 GiB
Logical volume "mylv" created.
#查看逻辑卷
[root@server1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 1.99g
#格式化逻辑卷
[root@server1 ~]# mkfs -t xfs /dev/mapper/myvg-mylv
meta-data=/dev/mapper/myvg-mylv isize=512 agcount=4, agsize=130560 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=522240, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#添加挂载配置
[root@server1 ~]# echo "/dev/myvg/mylv /data xfs defaults 0 0" >> /etc/fstab
#让配置生效
[root@server1 ~]# mount -a
#查看挂载情况
[root@server1 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 965M 0 965M 0% /dev
tmpfs tmpfs 980M 0 980M 0% /dev/shm
tmpfs tmpfs 980M 10M 970M 2% /run
tmpfs tmpfs 980M 0 980M 0% /sys/fs/cgroup
/dev/sda3 xfs 28G 4.6G 23G 17% /
/dev/sda1 xfs 297M 163M 134M 55% /boot
tmpfs tmpfs 196M 0 196M 0% /run/user/0
/dev/mapper/myvg-mylv xfs 2.0G 33M 2.0G 2% /data
#往挂载目录存放一些文件。用于测试逻辑卷迁移后数据依然存在
[root@server1 ~]# cp -r /etc/profile /data/
[root@server1 ~]# ll /data/
总用量 4
-rw-r--r-- 1 root root 1819 11月 18 05:37 profile
7.3 旧服务器逻辑卷导出
#注释掉挂载配置
[root@server1 ~]# sed -i '/mylv/s/^/#/' /etc/fstab
#卸载逻辑卷的挂载目录
[root@server1 ~]# umount /data
#查看卸载后的挂载情况
[root@server1 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 965M 0 965M 0% /dev
tmpfs tmpfs 980M 0 980M 0% /dev/shm
tmpfs tmpfs 980M 10M 970M 2% /run
tmpfs tmpfs 980M 0 980M 0% /sys/fs/cgroup
/dev/sda3 xfs 28G 4.6G 23G 17% /
/dev/sda1 xfs 297M 163M 134M 55% /boot
tmpfs tmpfs 196M 0 196M 0% /run/user/0
#操作前查看逻辑卷和卷组情况
[root@server1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 1.99g
[root@server1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 1.99g 0
#让逻辑卷处于非激活状态
[root@server1 ~]# lvchange -an /dev/myvg/mylv
#让卷组处于非激活状态
[root@server1 ~]# vgchange -an myvg
0 logical volume(s) in volume group "myvg" now active
#导出卷组
[root@server1 ~]# vgexport myvg
Volume group "myvg" successfully exported
#此时再次查看卷组和逻辑卷
[root@server1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wzx-n- 1.99g 0
[root@server1 ~]# lvs
Volume group myvg is exported
7.4 旧服务器磁盘卸载,新服务器磁盘挂载
旧服务器卸载掉那两块硬盘:如下图
新服务器Server2导入 Server1卸载掉的两块磁盘:如下图



7.5 新服务器逻辑卷导入
#当2块硬盘挂载到新服务器server2后
#查看磁盘情况(如果没有显示新硬盘,那么可以重启server2服务器)
[root@server2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2.1G 0 part [SWAP]
└─sda3 8:3 0 27.6G 0 part /
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sr0 11:0 1 1024M 0 rom
#查看卷组和逻辑卷
[root@server2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wzx-n- 1.99g 0
[root@server2 ~]# lvs
Volume group myvg is exported
#导入卷组
[root@server2 ~]# vgimport myvg
Volume group "myvg" successfully imported
#激活卷组
[root@server2 ~]# vgchange -ay myvg
1 logical volume(s) in volume group "myvg" now active
#激活逻辑卷
[root@server2 ~]# lvchange -ay /dev/myvg/mylv
#再次查看卷组和逻辑卷
[root@server2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 1.99g 0
[root@server2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 1.99g
#创建挂载目录
[root@server1 ~]# mkdir /data
#修改挂载配置
[root@server1 ~]# echo "/dev/myvg/mylv /data xfs defaults 0 0" >> /etc/fstab
#让配置生效
[root@server1 ~]# mount -a
#查看挂载情况
[root@server2 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 965M 0 965M 0% /dev
tmpfs tmpfs 980M 0 980M 0% /dev/shm
tmpfs tmpfs 980M 10M 970M 2% /run
tmpfs tmpfs 980M 0 980M 0% /sys/fs/cgroup
/dev/sda3 xfs 28G 4.6G 23G 17% /
/dev/sda1 xfs 297M 163M 134M 55% /boot
tmpfs tmpfs 196M 0 196M 0% /run/user/0
/dev/mapper/myvg-mylv xfs 2.0G 33M 2.0G 2% /data
#最后检查逻辑卷中的数据是否存在
[root@server2 ~]# ll /data/
总用量 4
-rw-r--r-- 1 root root 1819 11月 18 05:37 profile
8 获取服务器唯一标识
开发软件许可证,需要获取服务器唯一标识,例如cpu序列号,mac地址等,将服务器唯一标识放进license里面,从而避免license被滥用。
8.1 mac地址
mac地址和网卡进行关联,执行ifconfig,取eth0或者ens33网卡的mac地址
[root@VM-16-12-centos ~]# ifconfig
...
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.16.12 netmask 255.255.252.0 broadcast 10.0.19.255
inet6 fe80::5054:ff:fede:9ef7 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:de:9e:f7 txqueuelen 1000 (Ethernet)
RX packets 434012759 bytes 70524925781 (65.6 GiB)
...
其中fe80::5054:ff:fede:9ef7为mac地址
8.2 服务器序列号/uuid
如果没有lshw命令,那么先进行安装
#在线安装
yum install lshw
#离线环境下
#可联网服务器先下载依赖(会生成rpm后缀的文件)
repocheck lshw
#离线服务器安装离线rpm文件
rpm -ivh ./*.rpm --force --nodeps
使用lshw命令
[root@VM-16-12-centos ~]# lshw -c system
vm-16-12-centos
description: Computer
product: CVM
vendor: Tencent Cloud
version: 3.0
serial: 94185bd6-2fc3-4124-880b-xxxxxxxx (这个是服务器序列号)
width: 64 bits
capabilities: smbios-2.8 dmi-2.8 smp vsyscall32
configuration: boot=normal family=Smdbmds uuid=D65B1894-C32F-2441-880B-998498959042 (这个是服务器序uuid)
*-pnp00:00
....
普通服务器获取服务器uuid
除了使用lshw命令,也可以直接使用cat /sys/class/dmi/id/product_uuid命令获取服务器uuid内容,因为该文件是不可编辑的。
容器环境获取服务器uuid
如果是容器环境下获取服务器唯一标识,那么老老实实用lshw命令获取服务器的uuid值。因为容器启动时使用 volume对容器里面的/sys/class/dmi/id/product_uuid进行替换覆盖,导致license被破解。
其次使用特权方式启动容器,–privileged
8.3 cpu唯一编号
使用dmidecode命令进行获取,如果没有该命令,那么参考8.2章节里面的离线下载lshw安装包布置
dmidecode -t processor
[root@VM-16-12-centos ~]# dmidecode -t processor
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0400, DMI type 4, 42 bytes
Processor Information
Socket Designation: CPU 0
Type: Central Processor
Family: Other
Manufacturer: Smdbmds
ID: E3 06 05 00 FF FB 8B 0F # cpu编号
Version: 3.0
...
如果是容器方式使用dmidecode命令,需要注意以下细节:
1、使用特权方式启动容器,–privileged
2、需要将宿主机的 /dev/mem 挂载到 容器的 /dev/mem
9 客户端和Linux服务器建立ssh连接很慢问题解决
#编辑ssh配置文件
vim /etc/ssh/sshd_config
文件最后增加下面两行命令
# 关闭 服务器利用dns将远程客户端的ip解析成dns
UseDNS no
# 关闭 GSSAPI认证
GSSAPIAuthentication no
重启sshd服务
systemctl restart sshd
10 安装Webssh-shellinabox
10.1 各webssh软件对比
有一个场景需求,就是在浏览器网页上,通过输入命令去操作linux服务,无需特地下载ssh客户端软件,故而需要一款 webssh软件来实现。
市面上有很多种的webssh,其中比较出名的有 ttyd和shellinabox。
| 功能 | ttyd | shellinabox |
|---|---|---|
| shell命令执行 | √ | √ |
| shell命令提示 | √ | √ |
| 是否支持ssl | √ | √ |
| 是否可以上传文件 | × | × |
| 是否可以使用服务器用户进行身份认证 | √ | × |
由于我们这边业务需要使用服务器系统的账号进行身份认证,故而我们这里采用shellinabox。
注:虽然shellinabox不支持上传文件,但是我们可以使用一些远程拷贝命令,例如scp,将所需的文件从远程服务器拷贝到当前服务器
10.2 安装
联网环境情况下安装方式:
yum install -y shellinabox
离线环境情况下安装方式:
#现在联网环境的服务器下载离线依赖包
yumdownloader --resolve shellinabox
安装包上传至离线服务器,然后执行安装命令(安装命令中的安装包名称数据实际名称来改)
rpm -ivh shellinabox-2.20-5.el7.x86_64.rpm
10.3 配置shellinabox
安装成功后会生成/etc/sysconfig/shellinaboxd配置文件
修改配置文件
vim /etc/sysconfig/shellinaboxd
在配置文件最后添加以下内容,下面的“192.168.25.61”需要改成你当前实际的服务器ip
#ssl-https访问方式
#OPTS="-s /:SSH:192.168.25.61"
# http方式访问
OPTS="-t -s /:SSH:192.168.25.61"
修改后如下图所示:
10.4 启动&验证
systemctl enable --now shellinaboxd.service
浏览器输入:
http方式访问地址:http://你的服务器ip:port
https方式访问地址:https://你的服务器ip:port

11 磁盘阵列实操
可参考文章:https://blog.csdn.net/weixin_46902396/article/details/115503328,讲的挺详细的
更多推荐




所有评论(0)