OpenStack高可用 -- 本地文件系统规划,Raid与LVM ( by quqi99 )

OpenStack高可用 -- 本地文件系统规划,Raid与LVM ( by quqi99 )


作者:张华  发表于:2013-07-21
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

http://blog.csdn.net/quqi99 )


       OpenStack使用本地文件系统时的一种规方案,对每一个计算节点来说:

    1,硬盘1与硬盘2做一个Raid1,在上面划boot,root, swap分区。

    2,硬盘3与硬盘4再做一个Raid1, 将它做为LVM的一个物理分区PP

  当然,究竟做什么级别的Raid需考虑实际硬盘个数情况和应用需求。

   想到一个问题,用PXE的一些裸机工具自动安装操作时能自动创建Raid吗? 经google是可以做的,像dell的比如crowbar,具有:BIOS配置,RAID配置,网络搜寻,状态监控,性能数据收集,和报警. crowbar是开源了但不包括RAID配置功能,见:http://hi.baidu.com/chenshake/item/2343244d6cb66beea5c066f4, 不过,xCAT是支持的,见:http://sourceforge.net/apps/mediawiki/xcat/index.php?title=Use_RAID1_In_xCAT_Cluster

   crowbar类似于xCAT,一个裸机工具,用来在裸机上部署操作系统。chef类似于puppet,用于后续的软件的安装和配置方面。

  关于xCAT,见:http://blog.csdn.net/quqi99/article/details/9398165


一些Raid的理论知识:

  • Raid0按块条带,是将数据块按顺序写在多个硬盘上,实际上没有冗余,但写性能好。

  • Raid1按块镜像,一个数据块写到一个硬盘的同时也写到另一个硬盘,对读性能可以提升,但对写下降,但冗性好,一块硬盘坏了只需要复制一块硬盘。

  • Raid0+1, 先内部Raid0,再Raid1一下。

  • Raid10, 先内部Raid1,再Raid0一下。性能与冗余都还不错

  • Raid 4,用校验位代替镜像,例如:数据块按Raid0顺序写在前4块硬盘上,若校验位写在第5块硬盘上。出了故障,从所有的盘加校验可根据一定算法恢复数据。

  • Raid5,Raid4的基础上,将校验位平均写在所有3块盘上,避免了只写到第3块盘的性能损耗。Raid4Raid5来说,同时坏两块盘的话,数据均不可恢复。

  • Raid6, 在Raid5的基础上, 是双校验, 可以允许同时坏两块盘.

       Raid0Raid1,至少2块硬盘,Radi0+1Radi10至少4块,Raid5至少3块。一般建议8块做Raid组,上限一般不超过16块。如果只是学习,可以将一块硬盘分成多个分区用软raid来做,但只是学习无实际用处。


Linux中的软Raid

        RAID是通过内核识别每一个RAID磁盘设备,RAID直接连接到主板上,通过内核中的md(multiple devices)模块(用户态通地mdadm工具来调用md模块)开实现RAID功能,而硬RAID是通过主板驱动RAID适配器,RAID适配器再连接RAID设备实现的,内核不识别下层的RAID设备阵列,硬RAID的配置是在BIOS中进行。

       仅做实验的话,可以将一块硬盘划分为4块分区,如sdb1,sdb2, sdb3, sdb4 ( sudo fdisk -l ),例如创建Raid10模式。

1,首先创建raid1设备,其中-l参数指raid级别,-n是硬盘设备个数。

mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/{sdb1,sdb2}

mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/{sdb3,sdb4}

应该就可以在上面建文件系统使用了:sudomkfs -t xfs /dev/md0

2, 再次创建Raid0

mdadm -C /dev/md3 -a yes -l 0 -n 2 /dev/{md0,md1}

3, mount /dev/md3 /mnt raid10就可以使用了,简单吧。

4, 其他命令:

停止Raid设备,madmin-S /dev/md3

移除硬盘,mdadm–remove /dev/md0 /dev/sdb1

添加硬盘,mdadm– add /dev/md0 /dev/sdb2

查看详细,mdadm-D /dev/md3


LVM

        上面说RAID是通过linux内核的md模块在底层管理RAID设备,另外linux中也提供了一个dm的模块(devicemapper,也可参见:http://blog.csdn.net/quqi99/article/details/8560798)。dm模块也能实现RAID的功能,dm模块在应用层为我们提供了一个应用程序的工具我们称为LVM(逻辑卷管理)。LVMRaid提供的物理卷的基础上再提供逻辑卷功能,这样做快照,热插拨均有好处。当我们在逻辑卷上创建了快照后,某一时刻发生对数据的操作时,在对数据的操作之前必须先将该数据备份到快照卷中,然后再对该数据进行操作,当下一次对该同样的数据进行操作时,不再对该数据就行快照备份(这种机制我们成为写时复制)

LVM的概念依次是:PP(物理分区),PV(物理卷),VG(卷组)LV(逻辑卷)

一些命令:

PP上创建PV, pvcreate /dev/sdb1 ,会生成和PP同名的PV

PV上创建VGvgcreatemyvg /dev/sdb1 /dev/sdb2

VG里添加PV,vgextend myvg /dev/sdb3

VG中删除PV,vgremove myvg /dev/sdb1

VG创建LV,lvcreate -L 5G -n mylv myvg (-L指卷的大小,-n逻辑卷的名字)

LV生成快照,lvcreate-L 5G -n mysnap -s -p r /dev/myvg/mylv (-s说明是快照卷,-ppermission,所以-pr指只读卷),此时对mylv逻辑卷进行写操作,在写之前会先将LV备份到快照mysnap中,然后再在mylv上写,那么mysnap就是以前的内容。下次再写的时候,将不再执行类似操作。 
LV上创建FS,sudo mkfs -t xfs /dev/myvg/mylv

LV逻辑扩容,lvextend-L +1G /dev/myvg/mylv,

LV物理扩容,resize2fs/dev/myvg/mylv

LV减容时,须先umount挂载点,且用e2fsck强制进行文件系统检查


最后,我们恶补一下Linux中Device Mapper模块的理论:

Device mapper 在内核中作为一个块设备驱动被注册的,它包含三个重要的对象概念,mapped device、映射表、target device。

Mapped device 是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备; target device 是实际的物理块; 它们之间通过映射表描述的映射关系和 target device 建立映射。下面是device mapper的架构:

    在内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driver 插件包括软 raid、软加密、逻辑卷条带、多路径、镜像、快照等, 并且targetdriver是一个树,可以无限迭代下去,是有父子关系的。Device mapper 进一步体现了在 Linux 内核设计中策略和机制分离的原则,将所有与策略相关的工作放到用户空间完成,内核中主要提供完成这些策略所需要的机制。因此整个 device mapper 机制由两部分组成--内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具,Device mapper库就是对ioctl、用户空间创建删除device mapper逻辑设备所需必要操作的封装,dmsetup是一个提供给用户直接可用的创建删除device mapper设备的命令行工具

具体dmsetup的用法见博客:http://blog.csdn.net/quqi99/article/details/8560798

关于多路径可参见:https://access.redhat.com/site/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/html/DM_Multipath/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quqi99

你的鼓励就是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值