15.高度的存储管理
1. RAID (冗余磁盘阵列)
RAID(Redundant Arrays of Inexpensive Disks)是一种将多个硬盘组合以提高性能或数据冗余的技术。
Linux 上的 RAID
在 Linux 上应用 RAID,有软件 RAID 和硬件 RAID 之分。通常,硬件 RAID 会被视作 SCSI 设备。
RAID 各个等级:
-
RAID 0 (条带化)
- 多个硬盘组合成一个大磁盘,没有备份,提供较好的性能但没有容灾能力。
- 示例:三台 100GB 硬盘组成一个 300GB 的 RAID 0。
-
RAID 1 (镜像)
- 多台硬盘写入相同数据,提供冗余备份。
- 示例:三个 100GB 硬盘组成一个 100GB 的 RAID 1。
-
RAID 4
- 至少需要 3 台硬盘,其中一台用作备份分区。性能瓶颈在于备份分区。
- 示例:三个 100GB 硬盘组成一个 200GB 的 RAID 4。
-
RAID 5
- 使用分布式备份技术,性能较 RAID 4 好,且不需要专门的备份硬盘。
- 示例:三个 100GB 硬盘组成一个 200GB 的 RAID 5。
-
其他 RAID 等级:
- RAID LINEAR:类似 RAID 0。
- RAID 0+1 (RAID01):RAID 0 组成的 RAID 1。
- RAID 10 (RAID+0):RAID 1 组成的 RAID 0。
- RAID 6:比 RAID 5 多一台备份区。
mdadm
命令控制 RAID 阵列
mdadm [option] [设备名]
常用选项:
选项 | 描述 |
---|---|
-C , --create |
创建 RAID 阵列并生成相关设备 |
-a |
自动生成必要的设备文件 |
-c |
指定 Chunk 大小 |
-l , --level |
指定 RAID 级别 |
-n , --raid-devices |
指定 RAID 阵列中的设备数量 |
-x , --spare-devices |
指定备用设备数量 |
--manage |
管理 RAID 阵列 |
-a , --add |
添加设备 |
-r , --remove |
删除设备 |
-f , --fail |
标记设备为失效 |
--query |
查询 RAID 状态 |
--detail |
查看 RAID 详细状态 |
--stop |
停止指定的 RAID 阵列 |
--stop --scan |
停止所有 RAID 阵列 |
2. LVM (逻辑卷管理)
LVM 是 Linux 下的一种磁盘管理工具,可以灵活地管理硬盘、分区和逻辑卷。
LVM 结构:
- PV (Physical Volume):一个硬盘或一个分区作为物理空间。
- PE (Physical Extent):PV 组成 PE。
- VG (Volume Group):PE 组成 VG。
- LV (Logical Volume):VG 内的 PE 分配为 LV。
创建 LVM:
-
准备 LVM 用的分区:
1
2fdisk /dev/sda
fdisk /dev/sdb -
初始化 PV:
1
pvcreate /dev/sda1 /dev/sdb1
-
创建 VG:
1
vgcreate testvg /dev/sda1 /dev/sdb1
-
创建 LV:
1
lvcreate -L 1G -n lv01 testvg
-
创建文件系统并挂载:
1
2mke2fs -j /dev/testvg/lv01
mount /dev/testvg/lv01 /mnt
管理 LVM:
命令 | 说明 |
---|---|
pvdisplay |
显示物理 PV 信息 |
pvscan |
显示 PV 状态 |
pvmove |
移动 PV 中的 PE |
pvremove |
删除 PV |
vgextend |
扩展 VG |
vgreduce |
缩小 VG |
vgdisplay |
显示 VG 详情 |
lvdisplay |
显示 LV 详情 |
lvextend |
扩展 LV |
lvreduce |
缩小 LV |
lvremove |
删除 LV |
lvcreate -s |
创建快照 |
3. 访问记忆装置
设备文件说明:
设备文件 | 说明 |
---|---|
/dev/hda |
IDE 主硬盘 |
/dev/hdb |
IDE 从硬盘 |
/dev/sda |
第一个 SCSI/STAT/USB 硬盘 |
/dev/sdb |
第二个 SCSI/STAT/USB 硬盘 |
/dev/sr0 |
第一个 SCSI/STAT/USB CD/DVD |
/dev/st0 |
第一个 SCSI 磁带设备 |
硬盘管理:
Linux 将 IDE 以外的硬盘识别为 SCSI 设备。硬盘的数据传送模式有 PIO(Programmed I/O)和 DMA(Direct Memory Access)模式。通常使用 DMA 模式。
检查 DMA 模式:
1 | hdparm -i /dev/sda |
硬盘控制:
1 | hdparm -d1 /dev/sda # 启用 DMA 模式 |
使用 SCSI/STAT/USB:
1 | sdparm [option] [设备文件] |
4. iSCSI (Internet Small Computer System Interface)
iSCSI 是基于 TCP/IP 的 SCSI 协议,可以使远程存储设备像本地设备一样使用。
iSCSI 配置步骤:
-
配置
targets.conf
文件:1
2
3
4
5
6<target iqn.2014.01.com.example.lpic:target0>
backing-store /dev/sdb2
initiator-address 192.168.11.2
initiator-address 192.168.11.4
incominguser centuser password
</target> -
启动 iSCSI target 服务:
1
service tgtd start
-
使用
tgtadm
命令查看 target 状态:1
tgtadm --mode target --op show
-
使用
iscsiadm
从 initiator 查询 target:1
iscsiadm -m discovery -t sendtargets -p 192.168.11.3
-
配置认证方式:
修改/etc/iscsi/iscid.conf
:1
2
3node.session.auth.authmethod = CHAP
node.session.auth.username = centuser
node.session.auth.password = password -
登录 iSCSI:
1
iscsiadm -m node --login
登录后,使用
cat /proc/partitions
查看 iSCSI 目标是否添加成功。