Centos硬盘管理笔记

《Centos硬盘管理笔记》

查看

查看硬盘使用情况/挂载点

# df -Th
---------------------------------------------------------------------------
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        50G 1000M   49G    2% /
devtmpfs       devtmpfs  3.8G     0  3.8G    0% /dev
tmpfs          tmpfs     3.8G     0  3.8G    0% /dev/shm
tmpfs          tmpfs     3.8G  8.8M  3.8G    1% /run
tmpfs          tmpfs     3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sda4      xfs        40G   33M   40G    1% /home
/dev/sda2      xfs      1014M  131M  884M   13% /boot
/dev/sda1      vfat      200M   12M  189M    6% /boot/efi
tmpfs          tmpfs     777M     0  777M    0% /run/user/0
---------------------------------------------------------------------------

查看硬盘挂载情况

# lsblk
---------------------------------------------------------------------------
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   200M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
├─sda3   8:3    0    90G  0 part /
├─sda4   8:4    0    10G  0 part /home
└─sda5   8:5    0  7.8G  0 part [SWAP]
sdb      8:16   0   1.8T  0 disk 
└─sdb1   8:17   0   1.8T  0 part /xxx
---------------------------------------------------------------------------

查看分区情况/类型/大小

# parted -l
--------------------------------------------------------------------
Model: ATA Maxsun 120GB A6 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                  标志
 1      1049kB  211MB   210MB   fat16           EFI System Partition  启动
 2      211MB   1285MB  1074MB  xfs
 3      1285MB  12.0GB  10.7GB  xfs
 4      12.0GB  20.3GB  8323MB  linux-swap(v1)
 5      20.3GB  120GB   99.7GB  xfs
--------------------------------------------------------------------
...
# fdisk -l (弃用,请改用parted -l)
--------------------------------------------------------------------
磁盘 /dev/sdb:2000.4 GB, 2000398934016 字节,3907029168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos  <<<<<<<<<<<< 旧的,旧的,旧的!!!!!!!
磁盘标识符:0xf1087a6c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  3907029167  1953513560   83  Linux
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
--------------------------------------------------------------------
磁盘 /dev/sda:120.0 GB, 120034123776 字节,234441648 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt  <<<<<<<<<<<< 新的,新的,新的!!!!!!!
Disk identifier: 91877FF0-C0BF-403A-895D-641FF54BFEF5


#         Start          End    Size  Type            Name
 1         2048       411647    200M  EFI System      EFI System Partition
 2       411648      2508799      1G  Microsoft basic 
 3      2508800     23480319     10G  Microsoft basic 
 4     23480320     39735295    7.8G  Linux swap      
 5     39735296    234440703   92.9G  Microsoft basic 
--------------------------------------------------------------------
磁盘 /dev/sdc:6001.2 GB, 6001175126016 字节,11721045168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
--------------------------------------------------------------------
--------------------------------------------------------------------
dos分区表的缺点在于:
1、只支持有限的分区数(MBR)
由于历史原因,分区表为主分区只预留了64K(4x16k),即4个主分区;为逻辑分区预留了384k(24x16k),即最多23个逻辑分区。
2、不支持2TB以上硬盘分区
也是历史原因,那个时候2TB还是个天文数字
--------------------------------------------------------------------
而GPT的优点如下:
1、分区表容量可扩展
一个分区依然是16k,但GPT可以扩展分区表容量,在建立GPT分区表后,可以建立一个小分区,譬如1M,用于存放分区表,这样一来,分区数量大大增加
2、没什么好说的,支持2TB以上的大分区
--------------------------------------------------------------------
linux 下fdisk 工具不支持GPT,得使用另一个GNU发布的强大分区工具parted。
fdisk支持MBR分区表,gdisk支持GPT分区表,而parted支持两者GPT和MBR
--------------------------------------------------------------------
CentOS 下建立GPT分区的方法
1、parted 或 gparted
2、gdisk

使用parted方法分区,此方法只能分区不能格式化!!

---------------------------------------------------------------------------
语法:# parted -s /dev/sdb mklabel gpt   //使用gpt模式!!!!!!<<<<
---------------------------------------------------------------------------
#parted /dev/sdc   //#一定要輸入硬盤名字,默認是操作第一塊硬盤
(parted) help        <<<<<<<<<<<<<<<<<<<<<<<<<                                                     
  align-check TYPE N                       check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted

(parted) mkpart primary             创建主分区<<<<<<<<<<<<<<<<<<<<<<<<<                                     
文件系统类型?  [ext2]? xfs         <<<<<<<< 该方法无效???
起始点? 0%         <<<<<<<<<<<<<<<<<<<<<<<<<                                                       
结束点? 100%       <<<<<<<<<<<<<<<<<<<<<<<<<                                                      
(parted) p          //打印分区信息<<<<<<<<<<<<<<<<<<<<<<<<<                                                      
Model: ATA ST6000NM0115-1YZ (scsi)
Disk /dev/sdc: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt    <<<<分区表类型
Disk Flags: 

Number  Start   End     Size    File system  Name     标志
 1      1049kB  6001GB  6001GB               primary

//如果出现The resulting partition is not properly aligned for best performance 说明没有对齐!!!!
align-check optimal 1  //检查指定的分区是否对齐!!<<<<<<<<<<<<<<<<<<<<<<<<<
1 aligned  //对齐的!

(parted) q    //退出 <<<<<<<<<<<<<<<<<<<<<<<<<
信息: You may need to update /etc/fstab.
---------------------------------------------------------------------------

删除分区

# parted /dev/sdc
(parted)p
(parted)rm 1 //删除指定 1 的这个分区

分区完之后格式化和挂载即可

# lsblk                                     
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   200M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
├─sda3   8:3    0    10G  0 part /home
├─sda4   8:4    0   7.8G  0 part [SWAP]
└─sda5   8:5    0  92.9G  0 part /
sdb      8:16   0   1.8T  0 disk 
└─sdb1   8:17   0   1.8T  0 part /storage
sdc      8:32   0   5.5T  0 disk 
└─sdc1   8:33   0   5.5T  0 part /storage2 

格式化磁盘

# mkfs -t xfs /dev/sdb1  或者下面这个方法
# mkfs.xfs -f /dev/sdb1  强制格式化!
# mkfs -t ext4 /dev/sdb1  或者下面这个方法
与XFS相比,Ext4处理的文件较小,例如,RHEL 7中Ext4的最大支持大小为16TB,而XFS中为500TB。(如果硬盘少于16TB都建议使用Ext4,大于则使用xfs)
从结果上看,在固态硬盘上似乎 Ext4 是一个更好的选择,在吞吐量上比 xfs 提升了 20%。
---------------------------------------------------------------------------
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=122094598 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=488378390, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=238466, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
---------------------------------------------------------------------------

查看格式化后的格式

# blkid //所有
/dev/sdb1: UUID="0495c775-8044-4e95-b3a6-1c3eb32565a6" TYPE="xfs" 
/dev/sda1: SEC_TYPE="msdos" UUID="C443-075D" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="a7a1c480-d3c8-4527-9131-fcb1f4dd7191" 
/dev/sda2: UUID="793adbfd-36aa-4550-bbae-7dffe3b3fc25" TYPE="xfs" PARTUUID="a281021f-1230-4688-b4bd-18ad723111be" 
/dev/sda3: UUID="023714d2-c007-4423-80e9-7fd0e7f39447" TYPE="xfs" PARTUUID="1fb59f8c-cc8c-4672-867f-e0314063463a" 
/dev/sda4: UUID="0c639bba-a4c8-48e2-9775-5d079037adef" TYPE="swap" PARTUUID="5204f1d7-48c8-46e8-9b8b-dcc58874ba49" 
/dev/sda5: UUID="55630d81-4eba-4dc2-9586-5d38b46ecc0e" TYPE="xfs" PARTUUID="bca13833-068d-4c80-9106-26ee746ffef8" 
/dev/sdc1: UUID="bb0a8358-a291-4970-98dd-56f8f2ba7494" TYPE="xfs" PARTLABEL="primary" PARTUUID="2a772366-d8e5-4927-8937-08d65b21ea79"
------------------------------------
# blkid /dev/sdb1  //查看指定分区属性
/dev/sdb1: UUID="1e2d7144-a4d1-4c88-8e95-afbdeacd5256" TYPE="xfs"
---------------------------------------------------------------------------

进行挂载 //临时挂载

# mkdir /storage
# mount /dev/sdb1 /storage   //临时挂载!<<<<<<<<<<<<<<<<<<<
61.卸载
# umount /dev/sdb1   <<<<<<<<<<指分区
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        50G 1000M   49G    2% /
devtmpfs       devtmpfs  3.8G     0  3.8G    0% /dev
tmpfs          tmpfs     3.8G     0  3.8G    0% /dev/shm
tmpfs          tmpfs     3.8G  8.8M  3.8G    1% /run
tmpfs          tmpfs     3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sda4      xfs        40G   33M   40G    1% /home
/dev/sda2      xfs      1014M  131M  884M   13% /boot
/dev/sda1      vfat      200M   12M  189M    6% /boot/efi
tmpfs          tmpfs     777M     0  777M    0% /run/user/0

设置开机挂载 //永久挂载

到 /etc/fstab 下配置挂载信息,添加一条记录。
# vi /etc/fstab 
---------------------------------------------------------------------------
UUID=55630d81-4eba-4dc2-9586-5d38b46ecc0e /                       xfs     defaults        0 0
UUID=793adbfd-36aa-4550-bbae-7dffe3b3fc25 /boot                   xfs     defaults        0 0
UUID=C443-075D                            /boot/efi               vfat    umask=0077,shortname=winnt 0 0
UUID=023714d2-c007-4423-80e9-7fd0e7f39447 /home                   xfs     defaults        0 0
UUID=0c639bba-a4c8-48e2-9775-5d079037adef swap                    swap    defaults        0 0

UUID=0495c775-8044-4e95-b3a6-1c3eb32565a6 /storage xfs defaults 0 0
UUID=bb0a8358-a291-4970-98dd-56f8f2ba7494 /storage2 xfs defaults 0 0

//外部设备在插入时挂载,在未插入时忽略。这需要 nofail 选项,可以在启动时若设备不存在直接忽略它而不报错
UUID=bb0a8358-a291-4970-98dd-56f8f2ba7494 /storage2 xfs defaults,nofail 0 0

第四列<parameters>
文件系统的参数
Async/sync	设置是否为同步方式运行,默认为async
auto/noauto 	 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro        	 是否以以只读或者读写模式挂载
exec/noexec        	 限制此文件系统内是否能够进行”执行”的操作
user/nouser	是否允许用户使用mount命令挂载
suid/nosuid	是否允许SUID的存在
Usrquota	启动文件系统支持磁盘配额模式
Grpquota	启动文件系统对群组磁盘配额模式的支持
Defaults	同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

第五列<dump>
能否被dump备份命令作用。dump是一个用来作为备份的命令。通常这个参数的值为0或者1
0	代表不要做dump备份
1	代表要每天进行dump的操作
2	代表不定日期的进行dump操作

第六列<fsck>
是否检验扇区。开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)
0	不要检验
1	最早检验(一般根目录会选择)
2	1级别检验完成之后进行检验

.....
/dev/sdb1 /storage xfs defaults 0 0  不推荐这种方式(/dev/sdb1) /当磁盘乱序时无法正确加载(当硬盘更换主板上的SATA3接口(位置)时,顺序变化会产生影响)
---------------------------------------------------------------------------

测试fstab文件是否正常运行

# mount -a

关于swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题

//尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机服务的用户,我们不推荐启用swap。
# free -m   //查看系统的整体内存使用情况
---------------------------------------------------------------------------
              total        used        free      shared  buff/cache   available
Mem:           7768         360        7160          70         247        7096
Swap:          7936           0        7936
---------------------------------------------------------------------------
//swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。
//该数值越接近于0,系统越倾向于不进行swap,仅在必要的时候进行swap操作。由于swap要比内存慢很多,因此减少对swap的依赖意味着更高的系统性能。
//该数值越接近于100,系统越倾向于多进行swap。有些应用的内存使用习惯更适合于这种情况,这也与服务器的用途有关。

查看当前的swappiness数值

# cat /proc/sys/vm/swappiness
//临时修改: 
sysctl vm.swappiness=0
//本次修改将一直生效到下次重启前。如果希望永久修改该数值,则需要编辑sysctl配置文件
//vi /etc/sysctl.conf      
---------------------------------------------------------------------------
vm.swappiness = 0  //将以下内容粘贴到文件末尾:
---------------------------------------------------------------------------
 //或者执行以下句子
# echo "vm.swappiness = 0">> /etc/sysctl.conf 

刷新SWAP

//可以执行命令刷新一次SWAP(将SWAP里的数据转储回内存,并清空SWAP里的数据)
# swapoff -a && swapon -a

使命令生效

# sysctl -p
sgdisk -b=sgdisk-sdb.bin /dev/sdb
sgdisk -l=sgdisk-sdb.bin /dev/sdb

inode,索引节点

inode32:支持4294967295(约42亿个文件索引)
inode64:支持4294967295(约42亿个文件索引)
当指定inode32时,它表示XFS将inode创建限制在不会导致inode编号超过32位的位置。
当指定inode64时,它表示允许XFS在文件系统中的任何位置创建索引节点,包括那些会导致索引节点号占用超过32位的位置。
inode32是为了向后兼容旧的系统和应用程序而提供的,因为64位inode号可能会给某些应用程序带来问题
不能处理大量索引节点的。如果正在使用的应用程序不能处理大于32位的inode号,则应该指定inode32选项。
对于内核v3.7及更高版本,inode64是默认的。

索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。
通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。
如果inode满了,即使磁盘有空间也写不进去:(这就是通常硬盘还有空间,但是无法写入文件的错误,因为inode满了,如16TB的硬盘无法写入时可以查看inode信息)
#查看inode占用:
# df -i
文件系统                                   Inode  已用(I)    可用(I) 已用(I)% 挂载点
devtmpfs                                 2039623      468    2039155       1% /dev
tmpfs                                    2043998        1    2043997       1% /dev/shm
tmpfs                                    2043998      700    2043298       1% /run
tmpfs                                    2043998       17    2043981       1% /sys/fs/cgroup
/dev/sda4                               51176960   115966   51060994       1% /
/dev/sdb1                               58720032  4330422   54389610       8% /tmp
/dev/sda2                                 524288       19     524269       1% /boot
/dev/sda1                                      0        0          0        - /boot/efi
tmpfs                                    2043998        5    2043993       1% /run/user/0
192.168.0.80:/storage80               1562587712 41132351 1521455361       3% /storage80
192.168.0.80:/storage80/storage        586052096 47061017  538991079       9% /storage80/storage
192.168.0.80:/storage80/videos/video1 1562587712 44883973 1517703739       3% /storage80/videos/video1
192.168.0.80:/storage80/videos/video2 1562587712 17901456 1544686256       2% /storage80/videos/video2
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注