资源描述
Linux分区,格式化,SWAP,LVM,软RAID的创建
格式化
查看当前分区:fdisk -l
这个命令我们以前是讲过的,我现在问下,ID那项是什么意思?
83 是代表EXT2和EXT3
82 是代表SWAP分区
5 扩展分区
硬盘结构我们就不讲了,相信大家都有基础。我们就直接进入操作
LINUX分区使用的工具是FDISK
对系统的第一个硬盘分区
fdisk /dev/sda
如果是对第二个硬盘分区,就是fdisk /dev/sdb
大家运行这个命令:#fdisk /dev/sda
都进入这个界面了吧?这是主菜单,按m就有提示
我们主要掌握的是以下几个参数:
d删除一个分区
n创建一个分区
q不保存退出
t改变分区ID
w保存退出
问下,LINUX对SCSI硬盘最多支持多少分区?
最多支持4个主分区,总分区数最多15个,fdisk 命令最多支持16个分区,IDE硬盘要多一些
现在我们创建一个分区 大小为500MB,在主菜单输入n
First cylinder (1-652, default 1):
这个表示第一个柱面空间的块是 1-652,default 1的意思就是默认从1开始。我们直接点回车,使用默认的
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
这里就是输入分区的大小,默认是以块为单位,我们要分500MB,我们就输入+500M 然后回车,分区就算完成了。
系统默认的分区ID就是83,所以我们没必要修改,直接按w保存退出
我们可以使用一个命令,让这个分区马上生效
输入partprobe,自己使用命令补全 然后用fdisk -l查看下, 最后一个,就是我们新建的分区
看见了吧,现在我们就格式这个分区,看到分区的号码/dev/sda7 ,等下我们格式化的时候要用
格式化的标准命令:
#mkfs.ext3 /dev/sdb1
我的是第1个分区,你们是第几个就用第几个
-t 后面跟的就是文件系统的类型
现在我们要挂载这个分区。挂载我已经教过了,相信大家还没忘记吧
先在/mnt/下面建立一个目录
mkdir /mnt/backup
backup就是我建立的目录
然后我们手动挂载哈~
mount -t ext3 /dev/sdb1 /mnt/backup
然后CD到这目录里面去,如果看见有一个LOST+fount目录,就说明你分区挂载成功了,现在就可以往分区里面写入数据了
我们还可以用df –h 命令查看
如果想把这个分区开机挂载,就把它写入/etc/fstab
刚才我们格式化使用的命令是:mkfs -t ext3 /dev/sdax
还有专门用于格式EXT3系统的命令:mkfs.ext3 /dev/sdax 就行了
大家OK的话,我们下面就开始学习用命令创建LVM逻辑卷
LVM的优点就是可以随意拉升和缩小。
LVM就想一种磁盘管理方式,叫逻辑卷管理器,从 Red Hat Linux 8.0 开始,逻辑卷管理器(LVM)可以在硬盘驱动器分配上使用,LVM 是一种把硬盘驱动器空间分配成逻辑卷的方法,这样硬盘就不必使用分区而被简易地重划大小。
LVM有点象WIN下的动态磁盘,动态磁盘知道吗?LVM 是一种把硬盘驱动器空间分配成逻辑卷的方法,这样硬盘就不必使用分区而被简易地重划大小。主要就是这个功能,可以随意扩展或者缩小某个分区的大小,前提这个分区是逻辑卷管理的。
从硬盘驱动器中创建物理卷(physical volumes-PV)。
从物理卷中创建卷组(volume groups-VG)。
从卷组中创建逻辑卷(logical volumes-LV),并分派逻辑卷挂载点
其中只有逻辑卷才可以写数据
分一个物理分区,建立一个物理卷,然后这个物理卷建立一个卷组,我们就可以在这个卷组里面去分无数个逻辑卷,而且逻辑卷可以随意扩大缩小,不会对物理分区有影响,逻辑卷的功能也和物理分区差不多,一样可以格式化成随意的文件系统,挂载到随意的目录。 同时也支持quota 磁盘配额
创建逻辑卷的步骤:
1)通过pvcreate命令将linux分区或者物理磁盘处理成物理卷(PV);
2)通过vgcreate命令将创建好的物理卷处理成卷组(Vg);
3)通过lvcreate命令将卷组分成若干个逻辑卷(Lv);
之后我们可以对逻辑卷进行格式化,挂载,删除等操作,我们可以动态的调整逻辑卷的大小,并且该操作不会影响我们在逻辑卷(Lv)上的数据。
第一步:划分物理分区
使用和刚才一样的方法
fdisk /dev/sdb
输入n 然后回车使用默认的起始点,接着输入大小哈。我们创建一个300M大小的空间,输入+300M
注意,这里比刚才多一步,由于LVM的ID和EXT3不一样,而系统默认是的EXT3,所以这里我们需要修改一下
在主菜单输入T
系统会让你选择要改变ID的分区,输入我们刚创建的分区,也就是最后一个2
Hex code (type L to list codes):
这里输入分区类型,LVM是8e,如果你不记得了,可以使用l 查看分区ID的对应列表
输入l后,系统会列出所有分区对应的ID号
看见最后你分出来的分区ID已经是8e,那么就可以输入w 保存退出
退出以后,记得要重启这个分区才能生效。我们要使用一个命令让它立即生效
#partprobe
到这里,第一步创建物理分区完成哈~
第二步:创建LVM的物理卷
使用命令
pvcreate /dev/sdb2
sdb2就是你刚才创建的分区
pvscan查看物理卷信息:会显示所有物理卷的情况
创建成功后,可以使用pvdisplay 查看
第三步:创建卷组
#vgcreate 卷组名 物理卷
#vgcreate wahaha /dev/sdb2
创建成功后,可以使用vgdisplay来查看卷组
第四步:创建逻辑卷 (重点)
#lvcreate -L 大小 卷组名 -n 逻辑卷名称
我就从卷组里面分100M出来创建一个逻辑卷
#lvcreate -L 100M wahaha -n wahaha1
第五步:格式化、挂载逻辑卷
#mkfs.ext3 /dev/wahaha/wahaha1
#mkdir /mnt/wahaha1
#mount -t ext3 /dev/wahaha/wahaha1 /mnt/wahaha1
现在我们再在刚才的卷组里面划分一个逻辑卷wahaha2出来,大小是150M,文件格式为ext3,挂载到/mnt/wahaha2
#lvcreate -L 150M wahaha -n wahaha2
#mkfs.ext3 /dev/wahaha/wahaha2
#mkdir /mnt/wahaha2
#mount -t ext3 /dev/wahaha/wahaha2 /mnt/wahaha2
现在wahaha1是100M,wahaha2是150M
我现在要把wahaha2减少50M ,wahaha1增加50M,大家看下面
我们开始做:
第一步:缩小文件系统
#resize2fs 对象 绝对大小
resize2fs /dev/wahaha/wahaha2 100M
第二步:缩小逻辑卷
#lvresize -L 绝对大小 对象
#lvresize -L 100M /dev/wahaha/wahaha2
然后确定大小
resize2fs /dev/wahaha/wahaha2
注意:缩小空间时可能会导致数据损坏,所以建议大家做lvm的时候,规划好,尽量少做缩小空间,我们这里主要是讲方法,应用。
[root@test backup]# umount /mnt/wahaha2 ---卸载
[root@test backup]# e2fsck -f /dev/wahaha/wahaha2 -----强制检查
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/wahaha/wahaha2: 11/26624 files (9.1% non-contiguous), 9031/102400 blocks
[root@test backup]# resize2fs /dev/wahaha/wahaha2 100M ---缩小文件系统,注意这里的100M,是最终的大小,不是要减少多少。
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/wahaha/wahaha2 to 102400 (1k) blocks.
The filesystem on /dev/wahaha/wahaha2 is now 102400 blocks long.
[root@test backup]# lvresize -L 100M /dev/wahaha/wahaha2 -----调整大小逻辑卷,这里的大小同上。
WARNING: Reducing active logical volume to 100.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce wahaha2? [y/n]: y
Reducing logical volume wahaha2 to 100.00 MB
Logical volume wahaha2 successfully resized
[root@test backup]# resize2fs /dev/lv0/test1 -----重新识别逻辑卷大小
[root@test backup]# mount /dev/wahaha/wahaha2 /mnt/wahaha2 重新挂载
[root@test backup]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 18G 2.1G 15G 13% /
/dev/sda3 965M 18M 898M 2% /test
/dev/sda1 99M 12M 83M 12% /boot
tmpfs 252M 0 252M 0% /dev/shm
/dev/hdc 2.8G 2.8G 0 100% /mnt/vcd
/dev/sdb1 471M 11M 437M 3% /mnt/backup
/dev/mapper/wahaha-wahaha1
97M 5.6M 87M 7% /mnt/wahaha1
/dev/mapper/wahaha-wahaha2
97M 5.6M 88M 6% /mnt/wahaha2
这样就缩小了LV的大小,注意要先umount
正确滴方法是:
对于lvm,如果是扩大某个lv,操作比较简单,但如果是缩小lv,则有一定的风险。我们先要缩小/dev/wahaha/wahaha2文件系统,然后才能缩小lvm,如果在缩小lvm之前忘了缩小文件系统,这时候可以这样来挽救:
1:不要进行对该分区的任何写入操作,最好是也不read
2:用lvresize2fs重新扩大该分区,且扩大的容量是刚刚缩小的容量(数字一定要和刚刚的一致)。
3:缩小文件系统
4:最后缩小逻辑卷哈。
5:确认文件系统和逻辑卷大小一致。
使用同样的命令给wahaha1加50M,这个就比较简单了
lvextend –L 要增加多少 逻辑卷
lvextend –L +1G /dev/wahaha/wahaha1
resize2fs /dev/wahaha/wahaha1 系统重新识别
现在我们使用的空间都是在卷组里面调用的,如果卷组的空间用完了怎么办?
那我们就需要给卷组拉升大小,给卷组拉升大小的方法
第一步、创建物理分区
#fdisk /dev/sdb
然后分一个分区,你想多大就多大,改变分区ID位8e。 然后保存退出
[root@test ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (100-652, default 100):
Using default value 100
Last cylinder or +size or +sizeM or +sizeK (100-652, default 652): +500M
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@test ~]# partprobe
Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.
第二步:创建物理卷
#pvcreate /dev/sdb3
第三步:拉升卷组,把刚建立的物理卷的空间加到以前的卷组中(重点)
#vgextend 卷组名 物理卷
#vgedtend wahaha /dev/sdb3
然后vgdisplay 查看下卷组的大小
给卷组增加大小后,我们就可以把新的空间分配到LVM中,看上面的增加方法。这样LVM的空间就可以无限扩张
如果其中一个pv坏了,如何更换呢?
首选需要添加一个新的分区,用fdisk /dev/sda命令,注意新的分区大小,格式,系统id都需要和坏掉的那个一模一样 ( 这步前面做太多了,这里就省略了)
# pvcreate /dev/sda10 //创建物理卷
# vgextend vgname /dev/sda10 //在卷组里增加物理卷
# pvmove /dev/sda8 /dev/sda10 //把/dev/sda8中的数据移动到/dev/sda10中
# pvdisplay //查看数据移动后的物理卷状态
# vgreduce vgname /dev/sda8 //先在卷组中移除损坏的sda8
# vgdisplay
下面我们来看下删除逻辑卷
我们创建LVM是从物理分区(或者磁盘)-物理卷-卷组-逻辑卷-格式化-挂载到目录这个顺序来的
删除当然像反安装一样,反正来
1)先是取消挂载
#umount /mnt/wahaha1
#umount /mnt/wahaha2
2)然后就是删除LVM
#lvremove /dev/wahaha/wahaha1
#lvremove /dev/wahaha/wahaha2
3)然后就删除卷组
#vgremove wahaha
4)然后删除物理卷
#pvremove /dev/sdb2
#pvremove /dev/sdb3
5)最后就是删除物理分区了
fdisk /dev/sdb
[root@test ~]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 8e Linux LVM
Command (m for help): d
Partition number (1-4): 2
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb3 100 161 498015 8e Linux LVM
Command (m for help): d
Partition number (1-4): 3
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@test ~]# partprobe
Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.
[root@test ~]#
[root@test ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 144 1052257+ 82 Linux swap / Solaris
/dev/sda3 145 271 1020127+ 83 Linux
/dev/sda4 272 2610 18788017+ 5 Extended
/dev/sda5 272 2610 18787986 83 Linux
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
[root@test ~]#
这样逻辑卷就算成功删除了
总结:
创建逻辑卷的顺序:Linux分区(或者磁盘)---物理卷---卷组---逻辑卷
删除逻辑卷的顺序:逻辑卷---卷组----物理卷---Linux分区
软件RAID
这个比LVM简单多了
RAID就是廉价冗余磁盘阵列
常用的级别是:
RAID0
RAID1
RAID5
RAID 0又称为Stripe或Striping,中文译为集带工作方式。它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量从而提高数据的读写速度。这是他的优点,我觉得最重要是提高读写速度,缺点是数据容易丢失。
RAID 1又称为Mirror或Mirroring,中文译为镜像方式。这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中 断。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验 (或运算),校验数据平均分布在每块硬盘上。容量为N-1,存储空间利用率非常高。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘 上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。具体算法就让学存储的技术搞吧,我们知道RAID5有这个功能就行了。
下面说说,RAID设备。
RAID分为软RAID和硬件RAID
软件RAID是基于系统的软件工作
优点:廉价
缺点:不稳定,如果系统坏了,RAID整列也就损坏,容易造成数据丢失
硬件RAID,这就是各大厂商提供的,存储解决方案。有专门的设备负责处理磁盘间的数据流。
相对于软件RAID
优点:可靠性高,易管理。稳定
缺点:成本过高
下面我们要讲的基于LINUX系统的软件RAID
在LINUX下管理RAID阵列的工具是mdadm工具
mdadm程序是一个独立的程序,能完成所有的软RAID管理功能
主要有7种使用模式:
Create 使用空闲的设备创建一个新的阵列,每个设备具有元数据块
Assemble 将原来属于一个阵列的每个块设备组装为阵列
Build 创建或组装不需要元数据的阵列,每个设备没有元数据块
Manage 管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘
Misc 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息
Grow 改变阵列中每个设备被使用的容量或阵列中的设备的数目
Monitor 监控一个或多个阵列,上报指定的事件
由于这个工具太强大,不能一一为大家讲解
我们今天主要讲创建任意级别的RAID,和如何删除这个RAID
至于管理就只有您自己下来找资料研究了
往往廉价的东西,用的人都多
RAID分区的ID是 fd 请大家记住,还记得lvm的分区ID号码,是8e,ext3的是83
现在我们开始实战
题目:建立一个RAID5 级别的分区使用一个分区给这个RAID做热备份,并挂在到本地的/mnt/raid 目录,
1、创建物理分区
因为RAID5至少需要3个或者更多的硬盘,我们就要分3个分区,然后再加一个热备份的分区,就是4个分区
#fdisk /dev/sdb
然后输入n ,创建分区
使用默认的起始点
输入大小为+100M
然后重复刚才的操作4次,创建4个分区,创建完4个分区后
我们还要改变分区的ID
在分区的主菜单输入T
然后输入要改变ID的分区号,也就是最后4个分区
然后输入分区的ID:fd
四个分区都改成FD
完成后,在分区主菜单里面使用p 查看分区信息
是不是最后4个分区都是ID为fd
如果OK的话,就输入w 保存退出
保存退出后,注意提示:
the new table will be used at the next reboot
我们还是要使用#partprobe 使分区马上生效
系统会提示
warning: unable to open /dev/h dc read-wirte ( read-only file system)
这个是正常的,应为光盘本来就是只读的也可以,我们也可以弹出光盘.
[root@test ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 144 1052257+ 82 Linux swap / Solaris
/dev/sda3 145 271 1020127+ 83 Linux
/dev/sda4 272 2610 18788017+ 5 Extended
/dev/sda5 272 2610 18787986 83 Linux
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
[root@test ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): +100M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (14-652, default 14):
Using default value 14
Last cylinder or +size or +sizeM or +sizeK (14-652, default 652): +100M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (27-652, default 27):
Using default value 27
Last cylinder or +size or +sizeM or +sizeK (27-652, default 652): +100M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (40-652, default 40):
Using default value 40
Last cylinder or +size or +sizeM or +sizeK (40-652, default 652): +100M
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/de
展开阅读全文