1. 首页 > Linux教程 > 正文

Linux教程FG489-Linux存储管理实战

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

风哥提示:

本文档介绍Linux存储管理实战案例。

Part01-LVM逻辑卷管理

1.1 LVM配置与管理

# 查看磁盘信息
[root@fgedu-storage ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─rl-root 253:0 0 50G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 200G 0 disk
sdc 8:32 0 200G 0 disk

# 创建物理卷
[root@fgedu-storage ~]# pvcreate /dev/sdb /dev/sdc
Physical volume “/dev/sdb” successfully created.
Physical volume “/dev/sdc” successfully created.

# 创建卷组
[root@fgedu-storage ~]# vgcreate fgedu_vg /dev/sdb /dev/sdc
Volume group “fgedu_vg” successfully created

# 查看卷组
[root@fgedu-storage ~]# vgs
VG #PV #LV #SN Attr VSize VFree
fgedu_vg 2 0 0 wz–n- 400.00g 400.00g
rl 1 2 0 wz–n- 99.00g 0

# 创建逻辑卷
[root@fgedu-storage ~]# lvcreate -L 100G -n fgedu_data fgedu_vg
Logical volume “fgedu_data” created.

[root@fgedu-storage ~]# lvcreate -L 50G -n fgedu_logs fgedu_vg
Logical volume “fgedu_logs” created.

[root@fgedu-storage ~]# lvcreate -l 100%FREE -n fgedu_backup fgedu_vg
Logical volume “fgedu_backup” created.

# 查看逻辑卷
[root@fgedu-storage ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
fgedu_backup fgedu_vg -wi-a—– 250.00g
fgedu_data fgedu_vg -wi-a—– 100.00g
fgedu_logs fgedu_vg -wi-a—– 50.00g

# 格式化逻辑卷
[root@fgedu-storage ~]# mkfs.xfs /dev/fgedu_vg/fgedu_data
meta-data=/dev/fgedu_vg/fgedu_data isize=512 agcount=4, agsize=6553600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=12800, version=2
= sectsz=512 sunit=0 blks,更多视频教程www.fgedu.net.cn lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

# 挂载逻辑卷
[root@fgedu-storage ~]# mkdir -p /data /logs /backup
[root@fgedu-storage ~]# mount /dev/fgedu_vg/fgedu_data /data
[root@fgedu-storage ~]# mount /dev/fgedu_vg/fgedu_logs /logs
[root@fgedu-storage ~]# mount /dev/fgedu_vg/fgedu_backup /backup

# 配置开机挂载
[root@fgedu-storage ~]# cat >> /etc/fstab << 'EOF' /dev/fgedu_vg/fgedu_data /data xfs defaults 0 0 /dev/fgedu_vg/fgedu_logs /logs xfs defaults 0 0 /dev/fgedu_vg/fgedu_backup /backup xfs defaults 0 0 EOF

Part02-LVM扩容管理

2.1 在线扩容操作

# 查看当前空间使用
[root@fgedu-storage ~]# df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/fgedu_vg-fgedu_data 100G 80G 20G 80% /data

# 扩展逻辑卷
[root@fgedu-storage ~]# lvextend -L +50G /dev/fgedu_vg/fgedu_data
Size of logical volume fgedu_vg/fgedu_data changed from 100.00 GiB (25600 extents) to 150.00 GiB (38400 extents).
Logical volume fgedu_vg/fgedu_data successfully resized.

# 在线扩展文件系统
[root@fgedu-storage ~]# xfs_growfs /data
meta-data=/dev/mapper/fgedu_vg-fgedu_data isize=512 agcount=4, agsize=6553600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsiz学习交流加群风哥QQ113257174e=4096 blocks=12800, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 26214400 to 39321600

# 验证扩容结果
[root@fgedu-storage ~]# df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/fgedu_vg-fgedu_data 150G 80G 70G 54% /data

# 添加新磁盘到卷组
[root@fgedu-storage ~]# pvcreate /dev/sdd
Physical volume “/dev/sdd” successfully created.

[root@fgedu-storage ~]# vgextend fgedu_vg /dev/sdd
Volume group “fgedu_vg” successfully extended

[root@fgedu-storage ~]# vgs
VG #PV #LV #SN Attr VSize VFree
fgedu_vg 3 3 0 wz–n- 600.00g 200.00g

# 创建LVM快照
[root@fgedu-storage ~]# lvcreate -L 10G -s -n fgedu_data_snap /dev/fgedu_vg/fgedu_data
Logical volume “fgedu_data_snap” created.

[root@fgedu-storage ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
fgedu_backup fgedu_vg -wi-a—– 250.00g
fgedu_data fgedu_vg owi-aos— 150.00g
fgedu_data_snap fgedu_vg swi-a-s— 10.00g fgedu_data 0.01
fgedu_logs fgedu_vg -wi-a—– 50.00g

# 恢复快照
[root@fgedu-storage ~]# lvconvert –merge /dev/fgedu_vg/fgedu_data_snap
Merging of volume fgedu_vg/fgedu_data_snap started.
fgedu_vg/fgedu_data: Merged: 100.00%

Part03-RAID配置

3.1 软件RAID配置

# 查看磁盘
[root@fgedu-storage ~]# lsblk | grep sd[b-e]
sdb 8:16 0 100G 0 disk
sdc 8:32 0 100G 0 disk
sdd 8:48 0 100G 0 disk
sde 8:64 0 100G 0 disk

# 创建RAID10
[root@fgedu-storage ~]# mdadm –create /dev/md0 –level=10 –raid-devices=4 /dev/sd[b-e]
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

# 查看RAID状态
[root@fgedu-storage ~]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sde[3] sdd[2] sdc[1] sdb[0]
209510400 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
[>………………..] resync = 0.0% (51200/209510400) finish=25.0min speed=139620K/sec

unused devices:

# 查看RAID详细信息
[root@fgedu-storage ~]# mdadm –detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 4 23:00:00 2026
Raid Level : raid10
Array Size : 209510400 (199.75 GiB 214.54 GB)
Used Dev Size : 104755200 (99.88 GiB 107.27 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Sat Apr 4 23:30:00 2026
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : near=2
Chunk Size : 512K

Consistency Policy : resync

Name : fgedu-storage:0 (local to host fgedu-storage)
UUID : abc12345:def67890:ghi12345:jkl67890
Events : 17

Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde

# 保存RAID配置
[root@fgedu-storage ~]# mdadm –detail –scan >> /etc/mdadm.conf

# 格式化RAID设备
[root@fgedu-storage ~]# mkfs.xfs /dev/md0

# 挂载RAID
[root@fgedu-storage ~]# mkdir /raid10
[root@fgedu-storage ~]# mount /dev/md0 /raid10

# 模拟磁盘故障
[root@fgedu-storage ~]# mdadm –manage /dev/md0 –fail /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0

# 移除故障磁盘
[root@fgedu-storage ~]# mdadm –manage /dev/md0 –remove /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0

# 添加新磁盘
[root@fgedu-storage ~]# mdadm –manage /dev/md0 –add /dev/sdf
mdadm: added /dev/sdf

Part04-iSCSI存储

4.1 iSCSI配置

# 安装iSCSI工具
[root@fgedu-storage ~]# yum install -y targetcli iscsi-initiator-utils

# 配置iSCSI Target
[root@fgedu-storage ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type ‘help’.

/> backstores/block create name=fgedu_block dev=/dev/fgedu_vg/fgedu_data
Created block storage object fgedu_block using /dev/fgedu_vg/fgedu_data.

/> iscsi/ create iqn.2026-04.net.fgedu:storage
Created t学习交流加群风哥微信: itpux-comarget iqn.2026-04.net.fgedu:storage.
Created TPG 1.
Global pref auto_add_default_portal true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/> iscsi/iqn.2026-04.net.fgedu:storage/tpg1/luns create /backstores/block/fgedu_block
Created LUN 0.

/> iscsi/iqn.2026-04.net.fgedu:storage/tpg1/acls create iqn.2026-04.net.fgedu:client
Created Node ACL for iqn.2026-04.net.fgedu:client
Created mapped LUN 0.

/> saveconfig
Configuration saved to /etc/target/saveconfig.json
/> exit

# 启动Target服务
[root@fgedu-storage ~]# systemctl enable target –now

# 配置iSCSI Initiator(客户端)
[root@fgedu-client ~]# yum install -y iscsi-initiator-utils

[root@fgedu-client ~]# cat > /etc/iscsi/initiatorname.iscsi << 'EOF' InitiatorName=iqn.2026-04.net.fgedu:client EOF [root@fgedu-client ~]# systemctl enable iscsid --now # 发现Target [root@fgedu-client ~]# iscsiadm -m discovery -t st -p 192.168.1.100 192.168.1.100:3260,1 iqn.2026-04.net.fgedu:storage # 登录Target [root@fgedu-client ~]# iscsiadm -m node -T iqn.2026-04.net.fgedu:storage -p 192.168.1.100 -l Logging in to [iface: default, target: iqn.2026-04.net.fgedu:storage, portal: 192.168.1.100,326from PG视频:www.itpux.com0] Login to [iface: default, target: iqn.2026-04.net.fgedu:storage, portal: 192.168.1.100,3260] successful. # 查看新磁盘 [root@fgedu-client ~]# lsblk | grep sd sda 8:0 0 100G 0 disk sdb 8:16 0 150G 0 disk

风哥针对存储管理建议:

  • 使用LVM实现灵活的存储管理
  • 配置RAID提高数据可靠性
  • 定期检查存储健康状态
  • 制定存储扩容计划
  • 配置存储监控告警

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息