Linux系统分区及LVM使用(一)

一、MBR分区

使用fdisk等分区工具,使用MBR(Master Boot Record)管理单个磁盘,这就决定了其分区表最多支持4个分区,分区类型包括主分区和扩展分区,逻辑分区可以被再次分割成多个逻辑分区。

标准 MBR 结构
地址 描述 长度            
(字节)
Hex Oct Dec
0000 0000 0 代码区 440            
(最大 446)
01B8 0670 440 选用磁盘标志 4
01BC 0674 444 一般为空值; 0x0000 2
01BE 0676 446 标准 MBR 分区表规划            
(四个16 byte的主分区表入口)
64
01FE 0776 510 55h MBR 有效标志:            
0x55AA
2
01FF 0777 511 AAh
MBR, 总大小: 446 + 64 + 2 = 512

上图是MBR结构,64个字节用来做分区表,分为4组,所以该硬盘最多支持4个主分区或者扩展分区。

fdisk等工具分区的使用简单,文章很多,也很详尽,这里不再赘述。

二、RAID

机械磁盘的安全性是很低的,生产环境中即使是使用可靠性较高的工业级磁盘,也很难保证磁盘不出故障,从而影响到数据的完整性。

1987年加州大学伯克利分校提出了RAID(Redundant Array of Inexpensive Disks)廉价磁盘冗余阵列,其设计目的就是把多个磁盘组成一个阵列,使其性能达到甚至超过价格昂贵且容量巨大的硬盘。但是发展到今天,机械式硬盘的价格不断下降,而且容量在不断上升,人们在使用RAID的时候,更看重其冗余带来可靠性和读写性能提升,所以,RAID被重新称为 Redundant Array of Inexpensive Disks 独立硬盘冗余阵列。

总体来说,RAID是把多块磁盘组合起来当做一块硬盘提供给操作系统使用。

RAID分为不同的级别,或提高读写性能,或提高冗余度已达到可靠性提升。生成环境中常用RAID0、1、5、10,尤其RAID5和10应用最为广泛。关于不同冗余级别的定义和数据块以及校验块的分布示意图可以参考资料“Common RAID Disk Data Format Specification ”。

RAID分为硬件RAID和软件RAID。硬件RAID一般使用在商用服务器之中,使用集成控制器或者板卡适配器来提供RAID功能(一些民用级主板也板载了RAID控制器);在有些考虑成本的地方或非关键场合,可以考虑使用软件RAID,但请在多块物理磁盘上实现。

在Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户的数据,而不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。目前MD支持linear, multipath, raid0 (stripping), raid1 (mirror), raid4, raid5, raid6, raid10等不同的冗余级别和组成方式,也能支持多个RAID阵列的层叠组成raid1+0, raid5+1等类型的阵列。更多内容请参考资料“Software RAID HOWTO”。

下面就在虚拟机中以Linux的软RAID来举例实现RAID10

创建四块2G磁盘备用,分别两两先做成RAID1。

[[email protected] ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf4ac53f4.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won‘t be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
         switch off the mode (command ‘c‘) and change display units to
         sectors (command ‘u‘).
 
Command (m for help): p
 
Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf4ac53f4
 
   Device Boot      Start         End      Blocks   Id  System
 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): 
Using default value 261
 
Command (m for help): l
 
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext‘d (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
 
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

如上,将4块磁盘设备分区,并调整类型为fd(Linux raid auto),如下

Disk /dev/sdb: 261 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1          0+    260     261-   2096451   fd  Linux raid autodetect
 
Disk /dev/sde: 261 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sde1          0+    260     261-   2096451   fd  Linux raid autodetect
 
Disk /dev/sdd: 261 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdd1          0+    260     261-   2096451   fd  Linux raid autodetect
 
Disk /dev/sdc: 261 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdc1          0+    260     261-   2096451   fd  Linux raid autodetect

先组建RAID1,然后再组建RAID0

[[email protected] ~]# mdadm -C /dev/md0 -l 1 -n 2 -a yes /dev/sd{b,c}1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store ‘/boot‘ on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[[email protected] ~]# mdadm -C /dev/md1 -l 1 -n 2 -a yes /dev/sd{d,e}1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store ‘/boot‘ on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[[email protected] ~]# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sde1[1] sdd1[0]
      2095360 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sdc1[1] sdb1[0]
      2095360 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
 
[[email protected] ~]# mdadm -C /dev/md3 -l 0 -n 2 -a yes /dev/md{0,1}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
[[email protected] ~]# cat /proc/mdstat 
Personalities : [raid1] [raid0] 
md3 : active raid0 md1[1] md0[0]
      4190208 blocks super 1.2 512k chunks
      
md1 : active raid1 sde1[1] sdd1[0]
      2095360 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sdc1[1] sdb1[0]
      2095360 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

对/dev/md3进行格式化

[[email protected] ~]# mke2fs -t ext4 /dev/md3
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
262144 inodes, 1047552 blocks
52377 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736
 
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

将/dev/md3挂载到/mnt/r10,并测试

[[email protected] mnt]# mkdir /mnt/r10
[[email protected] mnt]# mount /dev/md3 /mnt/r10
[[email protected] mnt]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md3              4.0G   72M  3.7G   2% /mnt/r10
[[email protected] mnt]# cd /mnt/r10/
[[email protected] r10]# cat > test.txt <<EOF

时间: 2024-11-11 15:53:39

Linux系统分区及LVM使用(一)的相关文章

Linux系统分区和挂载

Linux系统分区和挂载 linux系统分区 Linux分区和Windows有很大的区别.在Linux中,没有图形化的分区界面,因此,我们无法看到Windows下C盘.D盘这样的磁盘分区界面. 1. 硬盘分区 硬盘分区的目的:提高管理效率.如果所有东西都放在一个分区,OS管理起来效率比较低.同时,操作系统在启动时会通过 MBR 来获得操作系统文件所在的分区,所以一个可引导分区是不能缺少的. 分区是和操作系统没有任何关系.因为安装操作系统之前,分区已经开始进行了.我们可以简单的认为分区就是把硬盘分

Linux基础回顾(2)——Linux系统分区二三事

问题来自Linux教材,答案自我整理难免会有不足之处.这是我Linux期末的总结 1. 一块硬盘上可以有几种类型的分区?各自可以有多少个?(各个分区能安装操作系统吗?) 硬盘分区有三种类型的分区:主分区,扩展分区,逻辑分区:一个硬盘最多能划分4个主分区,或者3个主分区加上一个扩展分区,扩展分区上可以划分多个逻辑分区(最多20个).能安装操作系统. 2.用户能否在安装过程中创建扩展分区呢? 分区工具在文件系统类型中没有提供扩展(extended)分区类型,即用户不能根据需要不能手工创建扩展分区.安

Linux 系统分区

合理的系统分区,便于后期管理和提高文件的搜索速度 分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四 个,SCSI,SATA,USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个,不用说大家也知道…..所以主分区从sdb1开始到sdb4,逻辑 分区从sdb5开始,(逻辑分区永远从sdb5开始…)设备名可以使用fdisk –l查看 前言: Linux系统分区结构和windows是有很大区别的 以前初识Linux时,

将Linux系统转至LVM卷的方法

朋友今天突然找我,说是要把他的 Linux 系统的根分区磁盘扩大.接到这个问题,我马上开始查看下系统情况.是一台 CentOS 6.6 的系统,有两块磁盘分别是:/dev/vda1 是 15G 的根卷,/dev/vda2 是 1G 的交换分区,而整个 /dev/vda 磁盘总大小是 21G(有 5G  的 /dev/vda5 空闲空间).现在要求增大/dev/vda1 分区. 有三个解决方案: 第一个就是将 /dev/vda 上的空闲分区(/dev/vda5)随意作为 /home./var 之类

Linux磁盘分区与LVM详解

内容大纲: 一.磁盘分区是怎样表示的? 二.Linux磁盘分区与文件系统类命令 三.LinuxLVM逻辑卷管理 四.磁盘分区相关命令操作演示 五.磁盘分区及LVM操作演示 一.磁盘分区是怎样表示的? IDE磁盘的设备文件采用/dev/hdx 来命名,分区则采用/dev/hdxy来命名,其中想表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推),与代表分区的号码(由1开始,1,2,3,以此类推) SCSI设备和分区采用/dev/sdx和/dev/sdxy来命名(x和y的命名规则与IED磁盘命名规则

Linux系统分区及挂载点

一.关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition)两种,主分区可以马上被使用但不能再分区,扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区.那么由扩充分区再分 下去的是什么呢?它就是逻辑分区(Logical Partion),况且逻辑分区没有数量上限制. 对习惯于使用Dos或Windows的朋友来说,有几个分区就有几个驱动器,并且

Linux系统分区与注意事项

好久没有发博客了,接下来会把暑假学习的陆陆续续整理到博客上来,原本是想先整理python的,但刚好手头在学这个,就先整理了. 这篇博客时Linux学习的开篇,以前都是用到什么命令就了解一下,这周系统学习了一下常用的命令和相关知识,发现解决了很多之前的困惑,先从Linux的分区和安装的概念说起. Linux安装前要经历四个步骤,分别是:分区,格式化,定义设备文件名,挂载 1.分区 Linux的分区有三种:主分区,扩展分区和逻辑分区. 主分区最多只能有四个: 扩展分区最多有一个,主分区加扩展分区最多

Linux系统分区与格式化

系统分区 磁盘分区(逻辑上) 目的是为了存取和取用数据更方便,把大分区分成小的分区 1) 分区表: MBR分区表(主引导记录分区表):最大支持2.1TB硬盘(并不是更大 的硬盘不能用而是最多识别2.1TB).最多支持4个分区(是每块硬盘). GPT分区表(全局唯一标示分区表):支持9.4ZB 硬盘 (1ZB=1024PB,1PB=1024EB,1EB=1024TB).理论上支持的分区数没有限制,但Windows限制了128个主分区. 2) 分区类型(MBR) 主分区:最多只能有4个 扩展分区(突

Linux 系统分区与目录介绍

###系统分区 分区: 把大硬盘分为小的逻辑分区 格式化: 写入文件系统 挂载: 给每个分区分配挂载点 必须分区: /:根分区 swap分区:交换分区,内存2倍,不超过2GB 推荐分区: /boot:启动分区,200MB Linux各目录的作用 /bin/: 存放系统命令的目录,普通用户和超级用户都可以执行. /usr/bin/: 存放系统命令的目录,普通用户和超级用户都可以执行. 这些命令和系统启动无关. /sbin/: 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设