首页 > 代码库 > 11-磁盘管理
11-磁盘管理
第1章 磁盘介绍
1.1 磁盘管理总概括图
1.2 磁盘接口类型
1.2.1 SSD固态磁盘接口类型
1. SATA接口,SATA,SATA2.0 SATA3.0
2. PATA(IDE接口)
3. PCI-E接口,mSATA、m.2、PCIE(IDE)
项目 | 固态磁盘 | 传统机械磁盘 |
容量 | 较小 | 大 |
价格 | 高 | 低 |
随机存取 | 极快 | 一般 |
写入次数 | SLC:10万次 MLC:1万次 特质的可以达到100-200万次 | 无限制 |
盘内阵列 | 可 | 极难 |
工作噪音 | 无 | 有 |
工作温度 | 极低 | 较明显 |
防震 | 很好 | 较差 |
数据恢复 | 难 | 易 |
重量 | 轻 | 重 |
磁盘相关名字翻译
disk 磁盘
head 磁头
sector 扇区
track 磁道
cylinder 柱面
units 单元块
block 数据块
inode 索引节点
1.2.2 磁道柱面扇区总括
磁盘最基本的u成部分是由坚硬的金属材料制成的涂以磁性介质的盘片(数层),不同容量磁盘的盘片不等
要点:
1. 一块磁盘有2-14个盘片,每个盘片有两个面,每个面对应一个读写磁头,用磁头号来区分盘面,即盘面数就是磁头数,盘片数*2=磁头数(盘面数)
2. 不同盘面的磁道被划分为多个扇形区域,每个区域就是一个扇区(Sector)
3. 同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道(Track)
4. 不同盘面相同半径的磁道组成一个圆柱面就是柱面(Cylinder)
5. 一个柱面包含多个磁道(半径相同),一个磁道包含多个扇区
6. 数据信息记录可表示为:某磁头,某磁道(柱面),某扇区
1.2.3 容量计算
[root@AIGE ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 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: 0x0002edd7
Device Boot Start End Blocks Id System
[root@AIGE ~]# awk ‘BEGIN{print 255*63*1044*512/1000/1000}‘
8587.19 算容量
1.2.4 机械磁盘读写磁盘数据的原理小结
1. 磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成之后,如果数据还没有读写完成,才会切换其他不同半径磁道,这个切换磁道的过程称为寻道。
2. 不同磁头间的切换是电子切换,而不同的磁道间的切换需要磁头做径向运动。这个径向运动需要步进电机调节,这个动作是机械的切换。
磁头寻道是机械运动,切换磁头是电子切换
第2章 文件系统
2.1 磁盘分区的重点
1)给磁盘分区的实质就是针对0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号,扇区号及柱面号
2)给磁盘分区工具有fdisk(适合给小于2T的磁盘分区,适合mbr分区表),parted(擅长给大于2T的磁盘分区,可以对小于2T的磁盘分区,适合gpt格式分区表)
企业面试题:一台服务器6块600G的磁盘,raid5后,总大小3T,此时无法装系统。为什么?
解决方法:
法1:做raid后,不要重装系统,而是再raid界面继续分1个小的虚拟盘vd200G,用这个200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T分区(通过parted)
法2:先拿1块盘做taid0,剩下5块再做raid5,在raid0上装系统
法3:装系统时(C6.8),会默认变化分区表为gpt即可安装系统
3)一块磁盘的分区表仅有64个bytes大小,每个分区表要占用16个字节,因此一块磁盘仅支持四个分区表信息,即主分区+扩展分区的总量不超过4个
4)磁盘分区是按照柱面来划分的
5)扩展分区不能直接使用的,还需要子啊扩展分区的基础上创建逻辑分区才行
6)扩展分区有自己的分区表,因此,扩展分区下面的逻辑分区可以多个。
2.2 磁盘分区注意事项要点。
一块硬盘的分区方式只能为如下组合:
PPPE、PPE、PE、PPPP(即无法扩展,剩余空间浪费)
2.3 分区
1 [root@can ~]# fdisk /dev/sdb 2 Command (m for help): m 3 Command action 4 a toggle a bootable flag 5 b edit bsd disklabel 6 c toggle the dos compatibility flag 7 d delete a partition (删除一个分区) 8 l list known partition types (查看分区类型对应编号列表) 9 m print this menu (打印此帮助菜单) 10 n add a new partition (新建一个分区) 11 o create a new empty DOS partition table 12 p print the partition table (打印分区表) 13 q quit without saving changes (退出程序,不保存) 14 s create a new empty Sun disklabel 15 t change a partition‘s system id (更改分区类型) 16 u change display/entry units 17 v verify the partition table 18 w write table to disk and exit (将操作写入分区表并退出程序) 19 x extra functionality (experts only) 20 [root@Can ~]# fdisk /dev/sdb 21 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 22 Building a new DOS disklabel with disk identifier 0x267db449. 23 Changes will remain in memory only, until you decide to write them. 24 After that, of course, the previous content won‘t be recoverable. 25 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 26 WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to 27 switch off the mode (command ‘c‘) and change display units to 28 sectors (command ‘u‘). 29 Command (m for help): n 30 Command action 31 e extended 32 p primary partition (1-4) 33 p 34 Partition number (1-4): 1 35 First cylinder (1-130, default 1): 36 Using default value 1 37 Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +100M 38 Command (m for help): p 39 Disk /dev/sdb: 1073 MB, 1073741824 bytes 40 255 heads, 63 sectors/track, 130 cylinders 41 Units = cylinders of 16065 * 512 = 8225280 bytes 42 Sector size (logical/physical): 512 bytes / 512 bytes 43 I/O size (minimum/optimal): 512 bytes / 512 bytes 44 Disk identifier: 0x267db449 45 Device Boot Start End Blocks Id System 46 /dev/sdb1 1 14 112423+ 83 Linux 47 Command (m for help): n 48 Command action 49 e extended 50 p primary partition (1-4) 51 e 52 Partition number (1-4): 2 53 First cylinder (1-130, default 1): ^C 54 [root@Can ~]# fdisk /dev/sdb 55 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 56 Building a new DOS disklabel with disk identifier 0x07986e9f. 57 Changes will remain in memory only, until you decide to write them. 58 After that, of course, the previous content won‘t be recoverable. 59 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 60 WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to 61 switch off the mode (command ‘c‘) and change display units to 62 sectors (command ‘u‘). 63 Command (m for help): n 64 Command action 65 e extended 66 p primary partition (1-4) 67 p 68 Partition number (1-4): 1 69 First cylinder (1-130, default 1): 70 Using default value 1 71 Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +100M 72 Command (m for help): n 73 Command action 74 e extended 75 p primary partition (1-4) 76 e 77 Partition number (1-4): 2 78 First cylinder (15-130, default 15): 79 Using default value 15 80 Last cylinder, +cylinders or +size{K,M,G} (15-130, default 130): 81 Using default value 130 82 Command (m for help): n 83 Command action 84 l logical (5 or over) 85 p primary partition (1-4) 86 l 87 First cylinder (15-130, default 15): 88 Using default value 15 89 Last cylinder, +cylinders or +size{K,M,G} (15-130, default 130): +400M 90 Command (m for help): p 91 Disk /dev/sdb: 1073 MB, 1073741824 bytes 92 255 heads, 63 sectors/track, 130 cylinders 93 Units = cylinders of 16065 * 512 = 8225280 bytes 94 Sector size (logical/physical): 512 bytes / 512 bytes 95 I/O size (minimum/optimal): 512 bytes / 512 bytes 96 Disk identifier: 0x07986e9f 97 Device Boot Start End Blocks Id System 98 /dev/sdb1 1 14 112423+ 83 Linux 99 /dev/sdb2 15 130 931770 5 Extended 100 /dev/sdb5 15 66 417658+ 83 Linux 101 Command (m for help): n 102 Command action 103 l logical (5 or over) 104 p primary partition (1-4) 105 1^Hl 106 Invalid partition number for type `1‘ 107 Command action 108 l logical (5 or over) 109 p primary partition (1-4) 110 l 111 First cylinder (67-130, default 67): 112 Using default value 67 113 Last cylinder, +cylinders or +size{K,M,G} (67-130, default 130): 114 Using default value 130 115 Command (m for help): p 116 Disk /dev/sdb: 1073 MB, 1073741824 bytes 117 255 heads, 63 sectors/track, 130 cylinders 118 Units = cylinders of 16065 * 512 = 8225280 bytes 119 Sector size (logical/physical): 512 bytes / 512 bytes 120 I/O size (minimum/optimal): 512 bytes / 512 bytes 121 Disk identifier: 0x07986e9f 122 Device Boot Start End Blocks Id System 123 /dev/sdb1 1 14 112423+ 83 Linux 124 /dev/sdb2 15 130 931770 5 Extended 125 /dev/sdb5 15 66 417658+ 83 Linux 126 /dev/sdb6 67 130 514048+ 83 Linux 127 Command (m for help): w 128 The partition table has been altered! 129 Calling ioctl() to re-read partition table. 130 Syncing disks. 131 partprobe (告诉内核分区表发生变化) 132 partprobe /dev/sdb/ 133 格式化: 134 mkfs.ext4 /dev/sdb1 135 tune2fs -c -1 /dev/sdb1 136 mount /dev/sdb1 /mnt 137 parted 138 [root@Can ~]# parted /dev/sdb 139 GNU Parted 2.1 140 使用 /dev/sdb 141 Welcome to GNU Parted! Type ‘help‘ to view a list of commands. 142 (parted) p 143 Model: VMware, VMware Virtual S (scsi) 144 Disk /dev/sdb: 1074MB 145 Sector size (logical/physical): 512B/512B 146 Partition Table: msdos 147 Number Start End Size Type File system 标志 148 1 32.3kB 115MB 115MB primary ext4 149 2 115MB 1069MB 954MB extended 150 5 115MB 543MB 428MB logical 151 6 543MB 1069MB 526MB logical 152 (parted) rm 1 153 (parted) rm 2 154 (parted) p 155 Model: VMware, VMware Virtual S (scsi) 156 Disk /dev/sdb: 1074MB 157 Sector size (logical/physical): 512B/512B 158 Partition Table: msdos 159 Number Start End Size Type File system 标志 160 (parted) mklabel gpt 161 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will 162 be lost. Do you want to continue? 163 是/Yes/否/No? yes 164 (parted) p 165 Model: VMware, VMware Virtual S (scsi) 166 Disk /dev/sdb: 1074MB 167 Sector size (logical/physical): 512B/512B 168 Partition Table: gpt 169 Number Start End Size File system Name 标志 170 (parted) mkpart primary 0 500 171 警告: The resulting partition is not properly aligned for best performance. 172 忽略/Ignore/放弃/Cancel? ignore 173 (parted) p 174 Model: VMware, VMware Virtual S (scsi) 175 Disk /dev/sdb: 1074MB 176 Sector size (logical/physical): 512B/512B 177 Partition Table: gpt 178 Number Start End Size File system Name 标志 179 1 17.4kB 500MB 500MB primary 180 (parted) mkpart logical 501 1000 181 (parted) p 182 Model: VMware, VMware Virtual S (scsi) 183 Disk /dev/sdb: 1074MB 184 Sector size (logical/physical): 512B/512B 185 Partition Table: gpt 186 Number Start End Size File system Name 标志 187 1 17.4kB 500MB 500MB primary 188 2 501MB 1000MB 499MB logical 189 (parted) quit 190 信息: You may need to update /etc/fstab. 191 格式化,挂载 192 非交互式 193 parted /dev/sdb mklabel gpt 194 parted /dev/sdb mkpart primary 0 500 195 parted /dev/sdb mkpart primary 501 1000 196 parted /dev/sdb p 197 mkfs -t ext4 /dev/sdb1 /dev/sdb2 198 mount /dev/sdb2 /tmp 199
11-磁盘管理