站长资讯网
最全最丰富的资讯网站

CentOS磁盘管理解析

在日常的服务器管理维护过程中,每天都要和磁盘进行亲密接触。那几天就来谈一谈CentOS下的磁盘管理机制。

20年前,一个60MB的磁盘大概需要花费$1000,而现如今,一块1TB的硬盘则大概需要$80。由此可见,磁盘这种东西已经很亲民了。但是作为计算机中不可或缺的一部分,磁盘扮演着很重要的角色。现在市面上常见的硬盘分为两种,机械盘和固态盘。

对于这两种盘想必大家都有着比我更加深入的了解。当然,固态盘对于我这种学生党来说也算是奢侈品了。今天主要来看看传统的机械盘。

以当前市面上最流行的SATA盘来说吧。

linux会自动识别block设备,并且自动在/dev目录下创建一个设备文件,以供内核能够访问到该设备。通常SATA的命名规则是/dev/sda、/dve/sdb等(发现的第一块设备就是/dev/sda,第二块就是/dev/sdb….)。使用fidsk -l 或者parted -l 可以列出当前系统上已经识别的block设备的个数(包括usb设备)。

接着来看看磁盘的底层管理

格式化和坏块管理:

安全格式化:要是确定一块数据盘要格式化,而且不打算恢复可以使用dd命令来进行格式化:

  假设我有一块4GB的磁盘需要进行彻底的格式化:  #dd if=/dev/zero of=/dev/your_device bs=1M count=4096  4096+0 records in  4096+0 records out  4294967296 bytes (4.3 GB) copied, 6.1207 s, 702 MB/s <硬盘写速度参照>    这个命令同样也可以测试硬盘的读写速度<上面的操作可以当做写速度的参照>    读速度测试:  #dd if=/dev/your_device of=/dev/null bs=1M count=4096  4096+0 records in  4096+0 records out  4294967296 bytes (4.3 GB) copied, 4.59378 s, 935 MB/s <这个可以作为读速度的参照>

用SMART监视磁盘(self-monitoring,analysis,and reporting technology)

在RED-HAT系列系统上都预装了此应用程序,通常由smartd守护进程和smartctl管理工具两部分。而/etc/smartd.conf定义了其后台进程的工作方式。

分区和格式化:

通常一个刚买的硬盘需要自己手动格式化分区,那么在CentOS命令行中该如何操作呢。

首先来看看有关分区的基础知识:

在许多允许有分区的系统上,通常会在磁盘的起始的第一个磁盘块上有一个“记录”,这个记录标明了分区的范围。通常这个磁盘快被叫做MBR(Master Boot Record)主引导记录。但是这个“主引导记录”占据的磁盘块只有512字节,而前446个字节被一个叫(BootLoader)的家伙占据了,只有66字节,最后两个字节还要用来标识BootLoader是否生效,所以留给磁盘分区的就只有64字节了。而一个分区表要占16字节,所以这64字节最多只能分4张分区表,因此最多只能有四个主分区。那我就是想分五个区呢?就很难受了啊。所以,人们就提出了拓展分区的概念,将一个主分区表作为拓展分区,而这个拓展分区上只存放一些列的分区指针,那么分区就可以不受4的限制了。

CentOS磁盘管理解析

可以看到,当我们使用扩展分区时,已经突破了4个分区的限制,在CentOS中拓展分区不能直接使用,必须要在拓展分区上再创建逻辑分区,才能够使用,而且,拓展分区是要占用一个编号的(即图中的/dev/sda4)所以在分区时应该格外注意。

好了,来创建一个分区吧:

  #fdisk /dev/sda   使用fdisk命令 指明要给那一块磁盘创建分区Welcome to fdisk (util-linux 2.23.2).    Changes will remain in memory only, until you decide to write them.  Be careful before using the write command.    Device does not contain a recognized partition table  Building a new DOS disklabel with disk identifier 0x051a34dd.    Command (m for help): n            创建一个新分区  Partition type:     p   primary (0 primary, 0 extended, 4 free)     e   extended  Select (default p): p      指明这个分区为主分区  Partition number (1-4, default 1):   指定分区编号,默认为1  First sector (2048-16777215, default 2048): 指定开始的扇区,使用默认即可  Using default value 2048  Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215): +4G 创建分区的大小  Partition 1 of type Linux and of size 4 GiB is set        Command (m for help): w 保存退出

创建好分区之后,还要创建对应的文件系统:

  [root@localhost ~]# mkfs -t ext4 -j /dev/sdb1  创建ext4文件系统  mke2fs 1.42.9 (28-Dec-2013)  Filesystem label=  OS type: Linux  Block size=4096 (log=2)  Fragment size=4096 (log=2)  Stride=0 blocks, Stripe width=0 blocks  262144 inodes, 1048576 blocks  52428 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    Allocating group tables: done                              Writing inode tables: done                              Creating journal (32768 blocks): done  Writing superblocks and filesystem accounting information: done   

最后挂载就可以使用了:

  #mount /dev/sdb1 /mnt/test_file_system/  进入test_file_system中创建文件试试吧  #cd /mnt/test_file_system  #touch test.sh   #ls -l   total 76  -rw-------. 1 root root  1422 Sep 11 10:08 anaconda-ks.cfg  -rw-r--r--. 1 root root 71826 Sep 13 08:39 smartd.conf  -rw-r--r--. 1 root root     0 Sep 13 09:30 test.sh

到此一个主分区就创建完成了。创建逻辑分区的方法与之类似,但是一定要注意fdisk最多只能识别15个分区,要是分区大于15个,fdisk命令就不好用了。针对于此,有一个很好用的命令parted/gparted(这两货其实是一个工具,只不过一个是命令行工具,一个是xWindow桌面工具)。

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号