multipath 多路径冗余multipath多路径冗余I/O(Multipath I/O)是指服务器通过多条物理路径连接到块存储设备。多路径冗余I/O也可以实现I/O的负载均衡,提高系统性能,但主要还是一种容错机制。

服务器和存储通过SAN光纤环境连接光纤交换机,服务器到存储的间的连接可以有 “1条或多条SAN光纤线缆,通过多对多的连接模式形成存储多路径,主机到存储之间的IO由多条路径可以选择

multipath 多路径解决问题

每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?

其中一条路径坏掉了,如何处理?

在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。多路径的主要功能就是和存储设备一起配合实现如下功能:

I/O流量分配:

多路径冗余、
磁盘的虚拟化
multipath 多路径软件的组成
multipath 多路径的软件包列表:
device-mapper-multipath-0.4.9-87.el6.x86_64
device-mapper-event-libs-1.02.95-2.el6.x86_64
device-mapper-persistent-data-0.3.2-1.el6.x86_64
device-mapper-multipath-libs-0.4.9-87.el6.x86_64
device-mapper-1.02.95-2.el6.x86_64
device-mapper-event-1.02.95-2.el6.x86_64
device-mapper-libs-1.02.95-2.el6.x86_64
依赖包列表
libaio-0.8.8-7.1el6x86_64.rpm
libaio-0.3.107-10.e16.x86_64.rpm
libaio-devel-0.3.107-10.e16.x86_64.rpm
device-mapper-multipath

提供multipathd和multipath等工具和 multipath.conf 等配置文件。这些工具通过 device mapper 的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。创建的多路径设备会在/dev/mapper中。

device-mapper

device-mapper包括两大部分:

内核部分:

内核部分由 device-mapper 核心(multipath.ko)和一些 target drive(dm-multipath.ko)构成。

dm-mod.ko 是实现 multipath 的基础,dm-multipath 其实是 dm 的一个target驱动。

核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些device的属性等。

用户空间部分:

包括 device-mapper 这个包。其中包括 dmsetup 工具和一些帮助创建和配置 mappered device 的库。这些库主要抽象,封装了与 ioctr 通信的接口,以便方便创建和配置 mappered device。

device-mapper-multipath 的程序中就需要调用这些库;

scsi_id scsi 唯一标识符

其包含在 udev 程序包中,可以在multipath.conf中配置该程序来获取scsi设备的序号。

通过序号,便可以判断多个路径对应了同一设备。这个是多路径实现的关键。

scsi_id 是通过 sg 驱动,向设备发送 EVPD page80 或 page83 的 inquery 命令来查询 scsi 设备的标识。但一些设备并不支持 EVPD 的inquery命令,所以他们无法被用来生成 multipath 设备。

但可以改写 scsi_id,为不能提供 scsi 设备标识的设备虚拟一个标识符,并输出到标准输出。

multipath 程序在创建 multipath 设备时,会调用 scsi_id,从其标准输出中获得该设备的 scsi id。

在改写时,需要修改 scsi_id 程序的返回值为0。因为在 multipath 程序中,会检查该直来确定 scsi id 是否已经成功得到。

wwid

在Linux系统中,如果添加了新的SCSI磁盘或者映射SAN存储LUN操作,重启操作系统之后会出现磁盘标识符(sd*)错乱的情况。

根据SCSI标准,每个SCSI磁盘都有一个WWID,类似于网卡的MAC地址,要求是独一无二。通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。

例如之前添加的SAN存储LUN的磁盘标识符为/dev/sdd,重启之后发现变成/dev/sdh,特别是oracle RAC环境下我们是不希望出现这样的情况的。 解决这个问题之前,需要先搞清楚Linux系统中的wwid和uuid号。

实例配置 multipath 多路径冗余

获取 FC光纤 接口的 WWN 号并记录

获取 FC 光纤存储的 WWN 号告知存储管理员,然后存储管理员将划分好的 LUN 映射给 指定的 WWN 号 FC 光纤接口

Shell
ls -l /sys/class/fc_host/ # 列出主机上已经启用的 FC 光纤接口
total 0
lrwxrwxrwx. 1 root root 0 May 11 00:07 host7 -> ../../devices/pci0000:80/0000:80:02.0/0000:81:00.0/host7/fc_host/host7 # 主机口7
lrwxrwxrwx. 1 root root 0 May 11 00:07 host8 -> ../../devices/pci0000:c0/0000:c0:03.0/0000:c2:00.0/host8/fc_host/host8 # 主机口8
cat /sys/class/fc_host/host7/port_name # 查看主机光纤 7 口的 WWN 号
0x21000024ff153440 # 光纤 7 口的 WWN 号
cat /sys/class/fc_host/host8/port_name # 查看主机光纤 8 口的 WWN 号
0x21000024ff15343b # 光纤 8 口的 WWN 号

ls-l/sys/class/fc_host/# 列出主机上已经启用的 FC 光纤接口

total0
lrwxrwxrwx.1rootroot0May1100:07host7->../../devices/pci0000:80/0000:80:02.0/0000:81:00.0/host7/fc_host/host7# 主机口7
lrwxrwxrwx.1rootroot0May1100:07host8->../../devices/pci0000:c0/0000:c0:03.0/0000:c2:00.0/host8/fc_host/host8# 主机口8
cat/sys/class/fc_host/host7/port_name# 查看主机光纤 7 口的 WWN 号
0x21000024ff153440# 光纤 7 口的 WWN 号
cat/sys/class/fc_host/host8/port_name# 查看主机光纤 8 口的 WWN 号
0x21000024ff15343b# 光纤 8 口的 WWN 号

获取 存储分配磁盘wwid

根据SCSI标准,每个SCSI磁盘都有一个WWID,类似于网卡的MAC地址,要求是独一无二。

通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。

Shell

# 查看指定磁盘的 wwid 号
# ls -al ll /dev/disk/by-id/ 列出所有已经挂载的 wwid
# scsi_id ----whitelist /dev/sdb 列出 已挂载和未挂载 的指定磁盘设备的 wwid 号
# 或者 scsi_id -u -g /dev/sdd 列出 已挂载和未挂载 的指定磁盘设备的 wwid 号
scsi_id -u -g /dev/sdd # 列出 sdb 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id -u -g /dev/sdc # 列出 sdc 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id -u -g /dev/sdd # 列出 sdd 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id -u -g /dev/sde # 列出 sde 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
# 查看指定磁盘的 wwid 号
# ls -al ll /dev/disk/by-id/ 列出所有已经挂载的 wwid
# scsi_id ----whitelist /dev/sdb 列出 已挂载和未挂载 的指定磁盘设备的 wwid 号
# 或者 scsi_id -u -g /dev/sdd 列出 已挂载和未挂载 的指定磁盘设备的 wwid 号
scsi_id-u-g/dev/sdd# 列出 sdb 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id-u-g/dev/sdc# 列出 sdc 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id-u-g/dev/sdd# 列出 sdd 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
scsi_id-u-g/dev/sde# 列出 sde 磁盘设备的 wwid 号
3600d02310005f8e5779138af484652fe
安装 multipath 相关软件包
Shell
# 挂载 CentOS 安装光盘
mkdir /mnt/cdrom # 在 /mnt 路径下创建 cdrom 目录,用于挂载CentOS的安装光盘
mount /dev/sr0 /mnt/cdrom/ # 将 CentOS 安装光盘挂载到 /mnt/cdrom 目录下
cd /mnt/cdrom/Packages/ # 进入 Packages 数据包目录中
rpm -ivh libaio-0.8.8-7.1el6x86_64.rpm libaio-0.3.107-10.e16.x86_64.rpm libaio-devel-0.3.107-10.e16.x86_64.rpm # 安装相关依赖包
rpm -ivh device-mapper-multipath-0.4.9-87.el6.x86_64 device-mapper-event-libs-1.02.95-2.el6.x86_64 # 安装multipath 多路径冗余软件包
rpm -ivh device-mapper-persistent-data-0.3.2-1.el6.x86_64 device-mapper-multipath-libs-0.4.9-87.el6.x86_64 # 安装multipath 多路径冗余软件包
rpm -ivh device-mapper-1.02.95-2.el6.x86_64 device-mapper-event-1.02.95-2.el6.x86_64 # 安装multipath 多路径冗余软件包
rpm -ivh device-mapper-libs-1.02.95-2.el6.x86_64 # 安装 multipath 多路径冗余软件包
reboot # 软件包安装完成后,重启服务器


# 挂载 CentOS 安装光盘
mkdir/mnt/cdrom# 在 /mnt 路径下创建 cdrom 目录,用于挂载CentOS的安装光盘
mount/dev/sr0/mnt/cdrom/# 将 CentOS 安装光盘挂载到 /mnt/cdrom 目录下
cd/mnt/cdrom/Packages/# 进入 Packages 数据包目录中
rpm-ivhlibaio-0.8.8-7.1el6x86_64.rpmlibaio-0.3.107-10.e16.x86_64.rpmlibaio-devel-0.3.107-10.e16.x86_64.rpm# 安装相关依赖包
rpm-ivhdevice-mapper-multipath-0.4.9-87.el6.x86_64device-mapper-event-libs-1.02.95-2.el6.x86_64# 安装multipath 多路径冗余软件包
rpm-ivhdevice-mapper-persistent-data-0.3.2-1.el6.x86_64device-mapper-multipath-libs-0.4.9-87.el6.x86_64# 安装multipath 多路径冗余软件包
rpm-ivhdevice-mapper-1.02.95-2.el6.x86_64device-mapper-event-1.02.95-2.el6.x86_64# 安装multipath 多路径冗余软件包
rpm-ivhdevice-mapper-libs-1.02.95-2.el6.x86_64# 安装 multipath 多路径冗余软件包
reboot# 软件包安装完成后,重启服务器
将多路径软件 multipath 添加至内核模块中
Shell
# 将多路径软件添加至内核模块中
modprobe dm-multipath # dm-multipath 添加至内核模块
modprobe dm-round-robin # dm-round-robin 添加至内核模块
# 检查内核添加情况
lsmod |grep multipath #--查看内核加载multipath信息
dm_multipath 17916 2 dm_round_robin
dm_mod 99200 21 dm_multipath,dm_mirror,dm_log
# 将多路径软件 multipath 设置为开机自启动
chkconfig --level 2345 multipathd on # 2345 级启动 multipathd 或者
systemctl enable multipathd # multipath 设置为开机自启动
service multipathd restart # 重启 multipath 服务 或者
systemctl restart multipathd # 重启 multipath 服务


# 将多路径软件添加至内核模块中

modprobedm-multipath# dm-multipath 添加至内核模块
modprobedm-round-robin# dm-round-robin 添加至内核模块
# 检查内核添加情况
lsmod|grepmultipath#--查看内核加载multipath信息
dm_multipath179162dm_round_robin
dm_mod9920021dm_multipath,dm_mirror,dm_log
# 将多路径软件 multipath 设置为开机自启动
chkconfig--level2345multipathdon# 2345 级启动 multipathd 或者
systemctlenablemultipathd# multipath 设置为开机自启动
servicemultipathdrestart# 重启 multipath 服务 或者
systemctlrestartmultipathd# 重启 multipath 服务
生成多路径软件 multipath 的配置文件 multipath.conf

编辑/etc/multipath.conf。默认情况下, /etc/multipath.conf 配置文件不存在,需要使用 multipath 命令生成 multipath.conf 配置文件

Shell

# 1. 生成多路径软件 multipaths 的 配置文件 multipath.conf

cd /sbin # 进入 /sbin 目录
./mpathconf --enable --find_multipaths y --with_module y --with_chkconfig y

# 1. mpathconf 命令生成配置文件,并删除配置文件中的 黑名单列表,在配置中添加默认的配置,安装多路径模块,将 multipaths 服务设为开启自启动


# 1. 生成多路径软件 multipaths 的 配置文件 multipath.conf
cd/sbin# 进入 /sbin 目录
./mpathconf--enable--find_multipathsy--with_moduley--with_chkconfigy
# 1. mpathconf 命令生成配置文件,并删除配置文件中的 黑名单列表,在配置中添加默认的配置,安装多路径模块,将 multipaths 服务设为开启自启动
编辑多路径配置文件 multipath.conf
Shell
# 2. 编辑多路径配置文件 multipath.conf
vim /etc/multipath.conf # 编辑配置文件
# 文件末尾 插入如下信息
# 黑名单列表,将所有的 本地磁盘或者 RADI 磁盘放入黑名单列表,排除这些指定的磁盘.
blacklist {
wwid SPM8060-_1_487934AD # 黑名单设备的 wwid 号
devnode "^sda" # 黑名单设备名称
# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
# 单个磁盘的相关属性
multipaths {
multipath {
wwid 3600d02310005f8e5779138af484652fe # FC wwid 号
alias FC_LUN001 # 存储别名
path_grouping_policy multibus # 路径策略,multibus failover,前者做负载均衡,后者是主备方式
# path_checker readsector0 # 默认路径检查:读取设备的第一扇区
path_selector "round-robin 0" # 路径选择:轮循
failback manual # 管理路径故障恢复的方法:手动
rr_weight priorities # 路径优先级:优先
no_path_retry 5 # 队列重复值:默认为0
}
}
# 存储设备的相关属性
devices {
device {
vendor "INSPUR" # 存储厂商
product "AS5500" # 产品名称
path_grouping_policy multibus # 路径策略:负载均衡
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" # 调出 /dev/ 下的所有设备的 唯一标识符
path_checker readsector0 # 默认路径检查:读取设备的第一扇区
path_selector "round-robin 0" # 路径选择:轮循
hardware_handler "0"
failback 15
rr_weight priorities
no_path_retry queue
}
}


# 2. 编辑多路径配置文件 multipath.conf
vim/etc/multipath.conf# 编辑配置文件
# 文件末尾 插入如下信息
# 黑名单列表,将所有的 本地磁盘或者 RADI 磁盘放入黑名单列表,排除这些指定的磁盘.
blacklist{
wwidSPM8060-_1_487934AD# 黑名单设备的 wwid 号
devnode"^sda"# 黑名单设备名称
#      devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode"^hd[a-z]"
}
# 单个磁盘的相关属性
multipaths{
multipath{
wwid3600d02310005f8e5779138af484652fe# FC wwid 号
aliasFC_LUN001# 存储别名
path_grouping_policymultibus# 路径策略,multibus failover,前者做负载均衡,后者是主备方式
#              path_checker            readsector0 # 默认路径检查:读取设备的第一扇区
path_selector"round-robin 0"# 路径选择:轮循
failbackmanual# 管理路径故障恢复的方法:手动
rr_weightpriorities# 路径优先级:优先
no_path_retry5# 队列重复值:默认为0
}
}
# 存储设备的相关属性
devices{
device{
vendor"INSPUR"# 存储厂商
product"AS5500"# 产品名称
path_grouping_policymultibus# 路径策略:负载均衡
getuid_callout"/lib/udev/scsi_id --whitelisted --device=/dev/%n"# 调出 /dev/ 下的所有设备的 唯一标识符
path_checkerreadsector0# 默认路径检查:读取设备的第一扇区
path_selector"round-robin 0"# 路径选择:轮循
hardware_handler"0"
failback15
rr_weightpriorities
no_path_retryqueue
}
}
格式化路径
Shell
multipath -v2 # 格式化路径,检测路径,合并路径
service multipathd reload # 重新载入 multipathd 服务的配置 或者
systemctl multipathd reload # 重新载入 multipathd 服务的配置
service multipathd restart # 重启 multipath 服务 或者
systemctl restart multipathd # 重启 multipath 服务
reboot # 重启系统
multipath -ll | more # 查看、检查多路径信息
FC_LUN001 (3600d02310005f8e5779138af484652fe) dm-2 Inspur,AS Manager 5500
size=10T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=0 status=active
|- 7:0:0:0 sdb 8:16 active undef running
|- 8:0:0:0 sdd 8:48 active undef running
|- 7:0:1:0 sdc 8:32 active undef running
`- 8:0:1:0 sde 8:64 active undef running

# 可以看到 四条 FC 路径已经上线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
multipath-v2# 格式化路径,检测路径,合并路径
servicemultipathdreload# 重新载入 multipathd 服务的配置 或者
systemctlmultipathdreload# 重新载入 multipathd 服务的配置
servicemultipathdrestart# 重启 multipath 服务 或者
systemctlrestartmultipathd# 重启 multipath 服务
reboot# 重启系统
multipath-ll|more#  查看、检查多路径信息
FC_LUN001(3600d02310005f8e5779138af484652fe)dm-2Inspur,ASManager5500
size=10Tfeatures='1 queue_if_no_path'hwhandler='0'wp=rw
`-+-policy='round-robin 0'prio=0status=active
|-7:0:0:0sdb8:16activeundefrunning
|-8:0:0:0sdd8:48activeundefrunning
|-7:0:1:0sdc8:32activeundefrunning
`-8:0:1:0sde8:64activeundefrunning
# 可以看到 四条 FC 路径已经上线

实例配置 FC 存储划分

FC 路径多路径上线,并配置完成后,需要为指定的 磁盘(LUN) 做磁盘初始化,并创建 pv、vg、lv、相关卷组。

MBR 分区表不支持,大于 2TB 的磁盘

大于 2TB 的磁盘 建议采用 XFS 系统,而非 ext4 文件系统。
划分 磁盘(LUN)
Shell
parted /dev/mapper/FC_LUN001 # 格式化 FC_LUN001 磁盘
GNU Parted 2.1
use /dev/FC_LUN001
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)mklabel gpt # 在当前 FC_LUN001存储建立GPT分区表
Warning: The existing disk label on /dev/FC_LUN001 will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted)mkpart primary "Linux system" xfs 0 -1
# 将磁盘划分为主分区、 分区名称为 Linux system、 分区文件系统为 XFS、 0 -1表示将整个磁盘作为一个分区
Warning: You requested a partition from 0.00B to 11000GB.
The closest location we can manage is 17.4kB to 11000GB.
Is this still acceptable to you?
Yes/No? Yes
(parted)print #--查看当前分区情况
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/FC_LUN001: 11000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 0.00B 11.0TB 11.0TB xfs Linux system
(parted)quit # 保存并退出 parted 程序
Info: You may need to update /etc/fstab.
# 重启操作系统。
reboot


parted/dev/mapper/FC_LUN001# 格式化 FC_LUN001 磁盘
GNUParted2.1
use/dev/FC_LUN001
WelcometoGNUParted!Type'help'toviewalistofcommands.
(parted)mklabelgpt# 在当前 FC_LUN001存储建立GPT分区表
Warning:Theexistingdisklabelon/dev/FC_LUN001willbedestroyedandalldataonthisdiskwillbelost.Doyouwanttocontinue?
Yes/No?Yes
(parted)mkpartprimary"Linux system"xfs0-1
# 将磁盘划分为主分区、 分区名称为 Linux system、 分区文件系统为 XFS、 0 -1表示将整个磁盘作为一个分区
Warning:Yourequestedapartitionfrom0.00Bto11000GB.
Theclosestlocationwecanmanageis17.4kBto11000GB.
Isthisstillacceptabletoyou?
Yes/No?Yes
(parted)print#--查看当前分区情况
Model:OPNFILERVIRTUAL-DISK(scsi)
Disk/dev/FC_LUN001:11000GB
Sectorsize(logical/physical):512B/512B
PartitionTable:gpt
NumberStartEndSizeFilesystemNameFlags
10.00B11.0TB11.0TBxfsLinuxsystem
(parted)quit# 保存并退出 parted 程序
Info:Youmayneedtoupdate/etc/fstab.
# 重启操作系统。
reboot
创建 vg 逻辑卷组
Shell
parted -l |grep FC_LUN001 # 查看指定的磁盘(LUN)是否已经上线
Error: /dev/mapper/FC_LUN001p1: unrecognised disk label
Disk /dev/mapper/FC_LUN001: 11.0TB
# 或者
fdisk -l |grep FC_LUN001 # 查看指定的磁盘(LUN)是否已经上线
Disk /dev/mapper/FC_LUN001: 10995.1 GB, 10995116277760 bytes
/dev/mapper/FC_LUN001p1 1 267350 2147483647+ ee GPT
Disk /dev/mapper/FC_LUN001p1: 10995.1 GB, 10995116243456 bytes
pvcreate /dev/mapper/FC_LUN001p1 # 将指定的磁盘分区 FC_LUN001p1 初始化为 PV 物理卷
vgcreate FC_VG01 /dev/mapper/FC_LUN001p1
# 创建一个vg卷组为 FC_VGData 的卷组,并将 FC_LUN001p1 PV物理卷加入 FC_VGData 卷组中
lvcreate -L +10T -n FC_LV_Lun001 FC_VG01 # 在VG卷组 FC_VG01 中,创建一个大小为 10TB 的逻辑卷,逻辑卷的名称为 FC_LV_LUN001
# 下面这条命令非必要,可以忽略
lvcreate -l 100%free -n FC_LV_LUN001 FC_VG01 # 将逻辑卷改为 100% 的空间
vgs | grep FC_VG01 # 查看 VG 逻辑卷卷组
VG #PV #LV #SN Attr VSize VFree
FC_VG01 1 1 0 wz--n- 10.00t 0
pvs | grep FC_LUN # 查看 PV 物理卷
PV VG Fmt Attr PSize PFree
/dev/mapper/FC_LUN001p1p1 FC_VG01 lvm2 a-- 10.00t 0
lvs | grep FC_LV_LUN # 查看 LV 逻辑卷
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
FC_LV_LUN001 FC_VG01 -wi-ao---- 10.00t
parted-l|grepFC_LUN001# 查看指定的磁盘(LUN)是否已经上线
Error:/dev/mapper/FC_LUN001p1:unrecogniseddisklabel
Disk/dev/mapper/FC_LUN001:11.0TB
# 或者
fdisk-l|grepFC_LUN001# 查看指定的磁盘(LUN)是否已经上线
Disk/dev/mapper/FC_LUN001:10995.1GB,10995116277760bytes
/dev/mapper/FC_LUN001p112673502147483647+eeGPT
Disk/dev/mapper/FC_LUN001p1:10995.1GB,10995116243456bytes
pvcreate/dev/mapper/FC_LUN001p1# 将指定的磁盘分区 FC_LUN001p1 初始化为 PV 物理卷
vgcreateFC_VG01/dev/mapper/FC_LUN001p1
# 创建一个vg卷组为 FC_VGData 的卷组,并将 FC_LUN001p1 PV物理卷加入 FC_VGData 卷组中
lvcreate-L+10T-nFC_LV_Lun001FC_VG01# 在VG卷组 FC_VG01 中,创建一个大小为 10TB 的逻辑卷,逻辑卷的名称为 FC_LV_LUN001
# 下面这条命令非必要,可以忽略
lvcreate-l100%free-nFC_LV_LUN001FC_VG01# 将逻辑卷改为 100% 的空间
vgs|grepFC_VG01# 查看 VG 逻辑卷卷组
VG#PV #LV #SN Attr   VSize  VFree
FC_VG01110wz--n-10.00t0
pvs|grepFC_LUN# 查看 PV 物理卷
PVVGFmtAttrPSizePFree
/dev/mapper/FC_LUN001p1p1FC_VG01lvm2a--10.00t0
lvs|grepFC_LV_LUN# 查看 LV 逻辑卷
LVVGAttrLSizePoolOriginData%Meta%MoveLogCpy%SyncConvert
FC_LV_LUN001FC_VG01-wi-ao----10.00t
安装 XFS 格式化工具
对于,大于 2TB 的磁盘建议使用 Red Hat(红帽) 的 XFS 文件系统
Shell
# 挂载 CentOS 安装光盘,并通过 yum 安装 mkfs.xfs
mount /dev/sr0 /mnt/cdrom/ # 将 CentOS 安装光盘挂载到 /mnt/cdrom 目录下
cd /etc/yum.repos.d/ # 进入 yum 源目录中
mkdir yum_back # 在 yum 源目录中创建一个 备份文件夹
mv * ./yum_back/ # 将 yum 中所有的文件移动至备份文件夹 yum_back 中
vim ./Local.repo # 创建一个本地的 yum 源配置文件
# 并输入如下内容,并保存
[Local]
name=Local
baseurl=file:///mnt/cdrom
endbled=1
gpgcheck=0
yum clean all # 清空 yum 缓存配置,使新的 yum 生效
yum install xfsprogs xfsdump # 安装 mkfs.xfs 文件系统格式工具
mkfs.xfs /dev/mapper/FC_VG01-FC_LV_LUN001 # 将 FC_VG01-FC_LV_LUN001 格式化为 XFS 文件系统
blkid |grep FC_LV_LUN # 可以看到 FC_VG01-FC_LV_LUN001 块设备已经被认出
/dev/mapper/FC_VG01-FC_LV_LUN001: UUID="615472f3-9878-4829-abb4-6eff27d09042" TYPE="xfs"
mount /dev/mapper/FC_VG01-FC_LV_LUN001 /FC/Data # 将指定的磁盘分区挂载到 /FC/Data 路径下
vim /etc/fstab # 编辑 fstab 开机自动挂载
# 并在 文件最后行中输入下如下内容,并保存退出
/dev/mapper/FC_VG01-FC_LV_LUN001 /FC/Data xfs defaults 0 0
reboot # 重启服务器
mount |grep FC_VG01 # 重启后,可以看到 FC_VG01-FC_LV_LUN001 已经自动挂载
/dev/mapper/FC_VG01-FC_LV_LUN001 on /FC/Data type xfs (rw)
# 挂载 CentOS 安装光盘,并通过 yum 安装 mkfs.xfs
mount/dev/sr0/mnt/cdrom/# 将 CentOS 安装光盘挂载到 /mnt/cdrom 目录下
cd/etc/yum.repos.d/# 进入 yum 源目录中
mkdiryum_back# 在 yum 源目录中创建一个 备份文件夹
mv*./yum_back/# 将 yum 中所有的文件移动至备份文件夹 yum_back 中
vim./Local.repo# 创建一个本地的 yum 源配置文件
# 并输入如下内容,并保存
[Local]
name=Local
baseurl=file:///mnt/cdrom
endbled=1
gpgcheck=0
yumcleanall# 清空 yum 缓存配置,使新的 yum 生效
yuminstallxfsprogsxfsdump# 安装 mkfs.xfs 文件系统格式工具
mkfs.xfs/dev/mapper/FC_VG01-FC_LV_LUN001# 将 FC_VG01-FC_LV_LUN001 格式化为 XFS 文件系统
blkid|grepFC_LV_LUN# 可以看到 FC_VG01-FC_LV_LUN001 块设备已经被认出
/dev/mapper/FC_VG01-FC_LV_LUN001:UUID="615472f3-9878-4829-abb4-6eff27d09042"TYPE="xfs"
mount/dev/mapper/FC_VG01-FC_LV_LUN001/FC/Data# 将指定的磁盘分区挂载到 /FC/Data 路径下
vim/etc/fstab# 编辑 fstab 开机自动挂载
# 并在 文件最后行中输入下如下内容,并保存退出
/dev/mapper/FC_VG01-FC_LV_LUN001/FC/Dataxfsdefaults00
reboot# 重启服务器
mount|grepFC_VG01# 重启后,可以看到 FC_VG01-FC_LV_LUN001 已经自动挂载
/dev/mapper/FC_VG01-FC_LV_LUN001on/FC/Datatypexfs(rw)