280 likes | 494 Views
Linux 磁盘管理. 刘西洋. 1. 磁盘管理. 1.1 MSDOS 分区表 1.2 GPT 分区表 1.3 设备文件 1.4 简单分区 1.5 LVM 逻辑卷管理 1.6 Linux Software RAID. 1.1 MBR 分区表. MBR 分区表,也称为 MSDOS 格式。即 PC-BIOS+MBR 这种组合模式下磁盘分区表类型。 磁盘前 512 字节记录磁盘引导和分区信息。 MBR 格式的标准决定了 MBR 只支持在 2TB 以下的硬盘,如果硬盘超过 2TB 时,只能管理到 2TB !
E N D
Linux磁盘管理 刘西洋
1. 磁盘管理 • 1.1 MSDOS分区表 • 1.2 GPT分区表 • 1.3 设备文件 • 1.4 简单分区 • 1.5 LVM逻辑卷管理 • 1.6 Linux Software RAID
1.1 MBR分区表 • MBR分区表,也称为MSDOS格式。即PC-BIOS+MBR这种组合模式下磁盘分区表类型。 • 磁盘前512字节记录磁盘引导和分区信息。 • MBR格式的标准决定了MBR只支持在2TB以下的硬盘,如果硬盘超过2TB时,只能管理到2TB! • MBR支持的最大卷为2 TB ,并且每个磁盘最多只能有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑分区)
1.2 GPT分区表 GPT,全局唯一标识分区表(GUID Partition Table)。GPT是EFI方案的一部分,但并不依赖于EFI主板,在BIOS主板的PC中也可使用GPT分区。与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制。GPT可管理硬盘大小达到了18EB。 GPT的分区信息是在分区中,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。允许将主磁盘分区表和备份磁盘分区表用于冗余,支持唯一的磁盘和分区ID。
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逻辑卷
1.4 简单分区 • 简单分区,即创建分区表,划分分区,创建文件系统。 • MBR: • 创建分区表格式为MBR。 • 创建主分区sda1: • 大小:100MB ;挂载点:/boot;文件系统:ext4 • 创建主分区sda2: • 大小:1-2倍内存;挂载点:无;文件系统:swap。 • 创建主分区sda3: • 大小:10G;挂载点:/ ;文件系统:ext4 • 创建扩展分区sda4: • 创建逻辑分区sda5: • 大小:自定义 挂载点:/home ;文件系统:ext4 • GPT:除不需要创建扩展分区和逻辑分区外,无任何区别。
1.5 LVM逻辑卷管理 • LVM可提供,不中断服务,动态扩充或缩减分区的存储容量。 • 通过LVM,我们可以把多个小磁盘分区,添加到同一个卷组,综合划分逻辑卷。积少成多。 • 物理卷:经过LVM处理过的普通标准分区或已创建的 Linux Software RAID 卷。即,我们需要选择用于 LVM 的物理存储器资源。 • 卷组:可以看作是由一个或多个物理卷所组成的存储器池。 • 逻辑卷:在逻辑组上创建的分区。在其上可创建操作系统。 • 操作方法: • 准备磁盘。 • 创建物理卷。pvcreate • 使用创建好的物理卷创建卷组。vgcreate • 创建逻辑卷 lvcreate • 在逻辑卷上创建分区。
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
2. 相关命令和文件 • 2.1.配置文件 • /etc/fstab /etc/mtab • 2.2.分区操作命令 • fschk fdisk • 2.3.磁盘检查命令 • 2.4.维护命令 • df du • 2.5. LVM命令 • 2.6. 软RAID命令
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相同
2.2 分区操作命令 • fdisk 命令行下,交互式MBR磁盘划分工具 • cfdisk 命令行下,类图形MBR磁盘划分工具 • parted 命令行下,交互式GPT磁盘划分工具 • 详细命令使用方法参见 man手册
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手册
2.4 维护分区命令 • df 检查文件系统的磁盘空间占用情况,可显示所有文件系统对i node和blocks的使用情况 • du 查看磁盘使用情况。 • 详细命令使用方法参见 man手册
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命令查找相关命令
2.6 软RAID命令 • 软件RAID管理命令就一个mdadm • 实例: mdadm -C /dev/md1 -l 1 -n 2 /dev/sda7 /dev/sda8 创建md1RAID1 由sda7和sda8组成 sda12为备用 cat /proc/mdstat 查看阵列详细信息 mdadm --stop /dev/md1 停止一个阵列
3. 实例 • 3.1 创建简单分区,并创建文件系统 • 3.2 创建LVM分区,并创建文件系统 • 3.3 创建软RAID阵列,并使用LVM创建文件系统
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
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
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
创建文件系统 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/
4. iSCSI存储系统 • 4.1 IP-SAN概念 • 4.2 IP-SAN优势 • 4.3 Linux搭建简单IP-SAN • 4.4 使用IP-SAN • 4.5 前景
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公里物理覆盖。克服了“存储孤岛”的困惑。
4.2 IP-SAN优势 • 1. 价格合理,实施过程简单。 • 2. IP网络技术相当成熟,IP-SAN减少了配置、维护、管理的复杂度。 • 3. 基于IP网络,数据迁移和远程镜像容易,且支持跨平台数据共享。 • 4. IP-SAN基于以太网,没有速度限制;没有距离限制;没有容量限制。
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 查看服务器状态。
4.4 使用IP-SAN • 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.5 使用前景 • 无需光纤HBA卡,提供千兆环境下服务器端,以约60MB/s速率接入SAN。 • 提供百兆城域网范围内的PC用户以约8MB/s的速率接入SAN。以实现工作文档集中存放。 • 提供远程备份,镜像功能。实现低成本容灾。
附录:参考链接 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
下一讲 Linux系统进程管理