Download - Linux 磁盘管理

Transcript
Page 1: Linux 磁盘管理

河南宏力集团网络管理部内部 Linux培训

Linux磁盘管理

刘西洋

Page 2: Linux 磁盘管理

1. 磁盘管理 1.1 MSDOS 分区表 1.2 GPT 分区表 1.3 设备文件 1.4 简单分区 1.5 LVM 逻辑卷管理 1.6 Linux Software RAID

Page 3: Linux 磁盘管理

1.1 MBR 分区表 MBR 分区表,也称为 MSDOS 格式

。即 PC-BIOS+MBR 这种组合模式下磁盘分区表类型。

磁盘前 512 字节记录磁盘引导和分区信息。

MBR 格式的标准决定了 MBR 只支持在 2TB 以下的硬盘,如果硬盘超过 2TB 时,只能管理到 2TB !

 MBR 支持的最大卷为 2 TB  ,并且每个磁盘最多只能有 4 个主分区 ( 或3 个主分区, 1 个扩展分区和无限制的逻辑分区)

Page 4: Linux 磁盘管理

1.2 GPT 分区表GPT,全局唯一标识分区表 (GUID Partition Table) 。 GPT 是 EFI方案的一部分,但并不依赖于 EFI主板,在BIOS主板的 PC中也可使用 GPT分区。与 MBR最大 4个分区表项的限制相比,GPT对分区数量没有限制。 GPT可管理硬盘大小达到了 18EB。 GPT的分区信息是在分区中,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外, GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。允许将主磁盘分区表和备份磁盘分区表用于冗余,支持唯一的磁盘和分区 ID。

Page 5: Linux 磁盘管理

1.3 设备文件 Linux 下所有设备文件都存在于 /dev 目录中,磁盘设备也

不例外。 常见磁盘设备文件有以下几类:

/dev/hda /dev/hda[0-9] 普通 IDE 磁盘设备 /dev/sda /dev/sda[0-9] 普通 SATA/SCSI 磁盘设备 /dev/vda / dev/vda[0-9] 虚拟磁盘设备 /dev/md /dev/md[0-9] 软 RAID 设备 /dev/dm-[0-9] 磁盘映射虚拟设备 LVM /dev/cciss/c0d0px c 表示控制器; d 表示磁盘; p 表示分区 /dev/vg_mail/ LVM 卷组 /dev/vg_mail/LogVol_home LVM 逻辑卷

Page 6: Linux 磁盘管理

1.4 简单分区 简单分区,即创建分区表,划分分区,创建文件系统。 MBR :

创建分区表格式为 MBR 。 创建主分区 sda1 :

» 大小: 100MB ;挂载点: /boot ;文件系统: ext4

创建主分区 sda2 :» 大小: 1-2 倍内存;挂载点:无;文件系统: swap 。

创建主分区 sda3 :» 大小: 10G ;挂载点: / ;文件系统: ext4

创建扩展分区 sda4 : 创建逻辑分区 sda5 :

» 大小:自定义 挂载点: /home ;文件系统: ext4

GPT :除不需要创建扩展分区和逻辑分区外,无任何区别。

Page 7: Linux 磁盘管理

1.5 LVM 逻辑卷管理 LVM 可提供,不中断服务,动态扩充或缩减分区的存储容量。 通过 LVM ,我们可以把多个小磁盘分区,添加到同一个卷组,综合

划分逻辑卷。积少成多。 物理卷:经过 LVM 处理过的普通标准分区或已创建的 Linux

Software RAID 卷。即,我们需要选择用于 LVM 的物理存储器资源。

卷组:可以看作是由一个或多个物理卷所组成的存储器池。 逻辑卷:在逻辑组上创建的分区。在其上可创建操作系统。 操作方法:

准备磁盘。 创建物理卷。 pvcreate 使用创建好的物理卷创建卷组。 vgcreate 创建逻辑卷 lvcreate 在逻辑卷上创建分区。

Page 8: Linux 磁盘管理

1.6 Linux Software RAID

在 Linux 系统中目前以 MD (Multiple Devices) 虚拟块设备的方式实现软件 RAID ,利用多个底层的块设备虚拟出一个新的虚拟块设备,

目前 MD 支持 linear, multipath, raid0 , raid1, raid4, raid5, raid6, raid10 等不同的冗余级别和组成方式,也能支持 raid1+0, raid5+1 。

建议使用软 RAID 时,仅用 RAID0 , RAID1 。因为复杂的 RAID 5 等模式会消耗 30% 左右的 CPU 资源用来校验。

操作方法: 创建 FD 格式物理卷,大小要符合要求,比如 RAID1 就应该创建两个同

样大小的分区。 mdadm --create 创建 RAID 阵列设备。详细参数参见 man 手册。 使用创建好的阵列设备

» 可以直接创建文件系统: mkfs.ext3 /dev/md0

» 也可以创建 LVM 物理卷: pvcreate

Page 9: Linux 磁盘管理

2. 相关命令和文件 2.1. 配置文件

/etc/fstab /etc/mtab

2.2. 分区操作命令 fschk fdisk

2.3. 磁盘检查命令 2.4. 维护命令

df du

2.5. LVM 命令 2.6. 软 RAID 命令

Page 10: Linux 磁盘管理

2.1 相关配置文件 /etc/fstab 文件

fs_spec          fs_file   fs_type fs_options   fs_dump   fs_pass  

/dev/mapper/vg_mail-LogVol_root  / ext4     defaults        1  1

/dev/mapper/vg_mail-LogVol_home  /home ext4     defaults        1  2

/dev/mapper/vg_mail-LogVol_tmp  /tmp ext4     defaults        1  2

/dev/mapper/vg_mail-LogVol_var  /var ext4     defaults        1  2

fs_spec 该字段定义文件系统所在设备或远程文件系统,除了使用设备名,还可使用 UUID 或卷标。fs_file 描述文件系统的载入点,交换分区为 none ,路径中包含的空格符用“ \040” 替代。fs_type 定义了该设备上的文件系统类型。fs_options 指定加载时使用的参数,多个参数逗号分隔。fs_dump 该选项被 dump 命令用来检查文件系统转储频率,不需转储置 0

fs_pass 该字段被 fsck 命令用来决定在启动时文件系统扫描顺序, "/"对应值应为 1 ,其他应为 2

/etc/mfstab 记录当前已挂载的分区信息,格式和 fstab 相同

Page 11: Linux 磁盘管理

2.2 分区操作命令 fdisk 命令行下, 交互式 MBR 磁盘划分工具 cfdisk 命令行下,类图形MBR 磁盘划分工具 parted 命令行下,交互式 GPT 磁盘划分工具

详细命令使用方法参见 man 手册

Page 12: Linux 磁盘管理

2.3 磁盘检查命令 badblocks 检查磁盘装置中损坏的区块,执行指令时须指定所要检查

的磁盘装置,及此装置的磁盘区块数。 /sbin/fsck 检查文件系统并尝试修复错误。 /sbin/e2fsck = /sbin/fsck .ext2= /sbin/fsck -t ext2 检查 ext2 文件系统 /sbin/fsck .ext3 = /sbin/fsck -t ext3 检查 ext3 文件系统 /sbin/fsck .ext4 = /sbin/fsck -t ext4 检查 ext4 文件系统 /sbin/dosfsck = /sbin/fsck.msdos = /sbin/fsck.vfat 检查 MS-DOS 文件系

统错误

详细命令使用方法参见 man 手册

Page 13: Linux 磁盘管理

2.4 维护分区命令 df 检查文件系统的磁盘空间占用情况,可显示所

有文件系统对 i node 和 blocks 的使用情况 du 查看磁盘使用情况。 详细命令使用方法参见 man 手册

Page 14: Linux 磁盘管理

2.5 LVM 命令

1 物理卷操作/sbin/pvdisplay 显示物理卷信息/sbin/pvcreate /sbin/pvremove /sbin/pvmove /sbin/pvresize

执行 locate pv | grep sbin 命令查找相关命令2 卷组操作

/sbin/vgdisplay 显示逻辑组信息/sbin/vgcreate /sbin/vgremove /sbin/vgreduce /sbin/vgextend

执行 locate vg | grep sbin 命令查找相关命令3 逻辑卷操作

/sbin/lvdisplay 显示逻辑卷信息/sbin/lvcreate /sbin/lvremove /sbin/lvreduce /sbin/lvextend

执行 locate lv | grep sbin 命令查找相关命令

Page 15: Linux 磁盘管理

2.6 软 RAID 命令 软件 RAID 管理命令就一个 mdadm 实例:

mdadm -C /dev/md1 -l 1 -n 2 /dev/sda7 /dev/sda8

创建 md1 RAID1 由 sda7和 sda8   组成 sda12为备用cat /proc/mdstat

查看阵列详细信息mdadm --stop /dev/md1

停止一个阵列

Page 16: Linux 磁盘管理

3. 实例 3.1 创建简单分区,并创建文件系统 3.2 创建 LVM 分区,并创建文件系统 3.3 创建软 RAID 阵列,并使用 LVM 创建文件系

Page 17: Linux 磁盘管理

3.1 简单分区命令:创建虚拟硬盘文件

dd if=/dev/zero of=/home/disk1 count=10240 bs=1M

映射成硬盘设备 losetup /dev/loop0 /home/disk1

分隔磁盘 (MBR) fdisk /dev/loop0

映射划分过的分区 kpartx -av /dev/loop0

创建文件系统 mkfs.ext4 /dev/mapper/loop0p1

创建挂载点 mkdir /mnt/a

挂载分区 mount /dev/mapper/loop0p1 /mnt/a

解挂分区 umount /mnt/a

去除分区映射 kpartx -dv /dev/loop0

去除硬盘映射 losetup -d /dev/loop0

Page 18: Linux 磁盘管理

3.2 创建 LVM 分区命令:创建虚拟硬盘文件

dd if=/dev/zero of=/home/disk2 count=10240 bs=1M

映射成硬盘设备 losetup /dev/loop0 /home/disk2

分隔磁盘 (gpt) parted /dev/loop0映射划分过的分区 kpartx -av /dev/loop0

创建 LVM物理卷 pvcreate /dev/loop1p[1-7]

创建卷组 vg_disk2  vgcreate vg_disk2 /dev/loop1p[1-7]

查看卷组 vg_disk2  vgdisplay vg_disk2

创建逻辑卷 lvcreate -L 100MB vg_disk2

创建逻辑卷 lvcreate -L 4GB -n lv_home vg_disk2

创建逻辑卷 lvcreate -l 51 -n lv_var vg_disk2

查看卷组 vg_disk2  vgdisplay vg_disk2

Page 19: Linux 磁盘管理

3.3 创建软 RAID

命令:创建虚拟硬盘文件dd if=/dev/zero of=/home/disk11 count=10240 bs=1M

dd if=/dev/zero of=/home/disk12 count=10240 bs=1M

映射成硬盘设备 losetup /dev/loop0 /home/disk11

映射成硬盘设备 losetup /dev/loop1 /home/disk12

分隔磁盘 (mbr) parted /dev/loop0

分隔磁盘 (mbr) parted /dev/loop1

映射划分过的分区 kpartx -av /dev/loop[0,1]

shell脚本创建 RAID阵列------------------------------------------------------------------------------------------

for i in 1 2 5 6 7 do 

mdadm --create /dev/md13i  -l 1 -n 2  /dev/mapper/loop0pi /dev/mapper/loop1pi

done---------------------------------------------------------------------------------------

查看运行的 RAID cat /proc/mdstat

Page 20: Linux 磁盘管理

创建文件系统 mkfs.ext4 /dev/md131

创建物理卷 pvcreate /dev/md13[5-7]

创建卷组 vgcreate vg_raid1 /dev/md13[5-7]

查看卷组 vgdisplay vg_raid1

创建逻辑卷 lvcreate -L 5G -n lv_home vg_raid1

创建文件系统 mkfs.ext4 /dev/vg_raid1/lv_home 

挂载分区 mount /dev/vg_raid1/lv_home /mnt/a

挂载分区 mount /dev/md131 /mnt/b

验证结果 ls /mnt/[a,b]

解挂分区 umount /mnt/[a,b]

删除逻辑卷 lvremove /dev/vg_raid1/lv_home 

删除卷组 vgremove vg_raid1

停止阵列 mdadm --stop /dev/md13[1-2,5-7]

去除分区映射 kpartx -dv /dev/loop[0,1]

去除硬盘映射 losetup -d /dev/loop[0,1]

详见: http://www.ibm.com/developerworks/cn/linux/l-cn-raid/

Page 21: Linux 磁盘管理

4. iSCSI 存储系统 4.1 IP-SAN概念 4.2 IP-SAN优势 4.3 Linux搭建简单 IP-SAN 4.4 使用 IP-SAN 4.5 前景

Page 22: Linux 磁盘管理

4.1 IP-SAN概念 IP-SAN ,即 iSCSI-SAN 。所谓 iSCSI亦即通过 IP网络,

将 SCSI 区块数据转换成网络封包的一种传输标准。数据存取方式上,采用与 FC-SAN 相同的 Block Protocol 协议。

IP-SAN基于十分成熟的以太网技术,普通服务器或 PC机只需要具备网卡,即可共享和使用大容量的存储空间。

IP-SAN基于 TCP/IP技术,没有对传输距离的限制。解决了 FC-SAN 的不超过 50公里物理覆盖。克服了“存储孤岛”的困惑。

Page 23: Linux 磁盘管理

4.2 IP-SAN优势 1. 价格合理,实施过程简单。 2. IP网络技术相当成熟, IP-SAN 减少了配置、

维护、管理的复杂度。 3. 基于 IP网络,数据迁移和远程镜像容易,且支

持跨平台数据共享。 4. IP-SAN基于以太网,没有速度限制;没有距离

限制;没有容量限制。

Page 24: Linux 磁盘管理

4.3 Linux搭建简单 IP-SAN

步骤:安装软件:

yum groupinstall “Network Storage Server”

配置 Server端:vi /etc/tgt/targets.conf  添加类似如下内容

<target iqn.2012.com.honliv:storage.iscsi0> iqn序列,标识符。

backing-store /dev/vg_storage/LogVol_iscsi00 添加两个存储块 backing-store /dev/vg_storage/LogVol_iscsi01

write-cache on 开启写缓存 vendor_id honliv Inc. 厂商 ID,类似描述</target>

service tgtd restart 重启服务tgtadm  --lld iscsi --mode target --op show   

查看服务器状态。

Page 25: Linux 磁盘管理

Linux 用户:安装客户端yum groupinstall “iSCSI Storage Client”

发现服务器发布的 target

iscsiadm -m discovery -t sendtargets -p IP/Hostname

登陆 target

iscsiadm -m node -T iqn.2012.com.honliv:storage.iscsi3 -p storage -l

登出 target

iscsiadm -m node -T iqn.2012.com.honliv:storage.iscsi3 -p storage -u

Windows 用户:下载安装Microsoft iSCSI Initiator 即可使用 IP-SAN

4.4 使用 IP-SAN

Page 26: Linux 磁盘管理

4.5 使用前景 无需光纤 HBA卡,提供千兆环境下服务器端,以

约 60MB/s速率接入 SAN 。 提供百兆城域网范围内的 PC 用户以约 8MB/s 的速率接入 SAN 。以实现工作文档集中存放。

提供远程备份,镜像功能。实现低成本容灾。

Page 27: Linux 磁盘管理

附录:参考链接Linux 中软件 RAID 的使用http://www.ibm.com/developerworks/cn/linux/l-cn-raid/

通用线程 : 学习 Linux LVM

http://www.ibm.com/developerworks/cn/linux/filesystem/lvm/lvm-1/index.html

fstab 百度百科http://baike.baidu.com/view/5499388.htm

Page 28: Linux 磁盘管理

Top Related