博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
磁盘管理-上部
阅读量:3964 次
发布时间:2019-05-24

本文共 5784 字,大约阅读时间需要 19 分钟。

磁盘体系

磁盘组成

磁盘 硬盘  disk(hard disk )

磁盘分类

机械硬盘  

固态硬盘(闪存芯片 nand flash)

磁盘主要指标

容量

转速 rpm   round per  minute 每分钟多少转 5400/7200/10000/15000 rpm
接口 sata  sas  scsi pci-e
缓存 缓存无处不在

磁盘的接口类型

SATA(串 serial)  数据,存放不重要数据的

SCSI        稳定,接口不一样
SAS        企业默认的接口
PCI-E       价格高
nvme (m.2)PCI=E  笔记本使用

磁盘的选择

机械与固态硬盘

机械硬盘

SATA:给自己使用的时候,对性能要求不高 大容量线下服务(不涉及到用户的 线下使用/服务)  10K rpm 2T 3T 4T 选择性价比最高的

SAS:服务器标配 线上/线下生产环境使用 
15K 300G 600G 10K 7.2K

固态硬盘:

PCI-E SAS SATA

大量的读写 要求很高的性能 数据量小

磁盘的选择

1)线上(用户正在使用的环境 给用户提供服务)的业务,用SAS磁盘。

2)线下(自己人用的环境)的业务,用SATA磁盘,磁带库,使用光盘存放数据。
3)线上高并发、小容量(很多人都想看的图片)的业务,固态硬盘SSD。
4)成本思想:根据数据的访问热度,智能分析分层存储。SATA+SSD

机械与固态对比

机械硬盘:容量大价格低 抗击打能力弱 读写速度稍慢io 数据恢复易   无限

固态硬盘:容量小价格高 抗击打能力高 读写速度很快io 数据恢复难   1-2w次

根据数据的访问热度,智能分析分层存储

一台服务器里面分为冷门数据和热门数据:

热门数据:把用户经常使用的图片 存放在ssd里面 。
冷门数据: 不经常使用的放在 sata 中。

使用SATA作为高并发的数据存储 企业案例

【企业案例】千万不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务,这是有血的教训的。某公司采用SATA做数据库的存储盘,结果导致数据库连续宕机一个月。

解决办法:
重新买5台,把磁盘从SATA(RAID5)换成SAS(RAID10)。6个月内没事。

磁盘内部结构

磁盘-硬盘-disk       

磁头--head
盘面数量==磁头数量
作用:用来写入和读取数据的
径向运动 寻道
磁道--track    
相当与一个呼啦圈 
以磁盘中心(主轴) 
环形区域
从外面到里面 最外面是0磁道
扇区--sector     
磁盘上面最小的单位         
一个扇区512字节
柱面--cylinder  
 
磁盘的读写是按照柱面进行
不同盘面上面相同的磁道组成的圆柱体
不同盘面上的相同的呼啦圈组成的圆柱体
磁盘默认是按照柱面进行读写
磁头之间的切换速度 接近于光速
磁头径向运动-寻道 机械运动 man
单元块--units    
表示一个柱面的大小

计算磁盘的容量

500G 硬盘 实际到手容量不足500G ?

厂家:    1000为单位  1KB=1000字节  1MB=1000KB 
计算机中:1024为单位

计算的公式

磁盘的大小 = 磁盘中的柱面大小柱面的数量

柱面的大小 = 一个磁道的大小磁头的数量(盘面数)
磁道的大小 = 扇区的数量*每个扇区的大小

查看磁盘的信息

fdisk用于观察硬盘实体使用情况,也可对硬盘分区

fdisk -l[root@nfsnobody ~]# fdisk -lDisk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders255 磁头   63 扇区           1305 柱面Units = cylinders of 16065 * 512 = 8225280 bytes单元块 一个柱面的大小Sector size (logical/physical): 512 bytes / 512 bytes

1字节为1B

1KB=1024B
1MB=1024KB=1024^2B
1GB=1024MB=1024^3B
1TB=1024GB=1024^4B

算出磁盘大小的条件

每个磁道上面有多少个扇区

磁盘有多少个磁头
柱面的数量

linux中如何计算

linux下面进行计算方法:

bc  与bc -l 
awk 'BEGIN{pirnt }'  
bc命令   bc默认取值整数。  bc -l可以显示小数位
bc 命令可以进行交互式命令,前面经过管道传输后可以进行非交互计算。

[root@nfsnobody ~]# echo 1+21+2[root@nfsnobody ~]# echo 1+2|bc3[root@nfsnobody ~]# echo  'scale=5;3/4' |bc.75000[root@nfsnobody ~]# echo  10/3|bc -l3.33333333333333333333awk 'BEGIN{pirnt }'  awk的方法可以显示小数位[root@nfsnobody ~]# awk 'BEGIN{print 1/3}'0.333333[root@nfsnobody ~]# awk   'BEGIN{print 3/4,1/2,1/3}'0.75 0.5 0.333333

raid详解

raid 磁盘冗余阵列(磁盘阵列卡)

用raid的目的

1)获得更大的容量

2)让数据更安全
3)读写速度更快

raid分类对比

RAID5  校验 奇偶校验

类型 硬盘数量 安全 冗余 可用容量 性能 使用场景 举例
raid 0
条带
最少一块 最低 所有硬盘之和 最快 不要求安全只要求速度 数据库从库
存储从库
raid 1
镜像
只能两块 100% 所有硬盘容量的一半 写入慢,读取类似一块的速度 只追求安全
对于速度没要求
系统盘
监控服务器
raid 5 最少3块 最多损坏一块 损失一块盘的容量 写入性能不好,读取速度可以 都有要求但要求都不高;可以作为热备 普遍数据库
存储
使用最多的
raid 10 最少4块
必须是偶数
可以损坏一半 损失所有硬盘一半的容量 读写都很快 对于安全和性能都要求很高 高并发或高访问量
数据库主库
存储

关于系统安全

连接到服务器

1.ip地址 

2.用户名密码  root 
3.端口号      22  
ll /var/log/secure    查看用户登录信息
nmap -p22 10.0.0.1-254    检查22端口号

把文件的md5信息记录起来

把文件的md5信息 存放(警察局)

md5sum校验
mdusum -c 
文件名改变 内容不变 md5不变
文件内容改变 文件名不变 md5改变

[root@nfsnobody nfsnobody]# echo nfsnobody > nfsnobody.txt  创建一个文件[root@nfsnobody nfsnobody]# md5sum nfsnobody.txt         查看文件的md53fe396c01f03425cb5e2da8186eb090d  nfsnobody.txt[root@nfsnobody nfsnobody]# md5sum nfsnobody.txt  >  pol.md5 将文件的md5写入到文件[root@nfsnobody nfsnobody]# md5sum -c pol.md5          检查nfsnobody.txt: OK                                    md5一样[root@nfsnobody nfsnobody]# > nfsnobody.txt          修改下文件内容[root@nfsnobody nfsnobody]# md5sum -c pol.md5     发生变化nfsnobody.txt: FAILEDmd5sum: WARNING: 1 of 1 computed checksum did NOT match

sha系列

sha系列也是用来设置指纹的 比md5更安全 和md5使用方法一样

[root@nfsnobody ~]# shasha1sum    sha224sum  sha256sum  sha384sum  sha512sum  [root@nfsnobody ~]# sha512sum nfsnobody.txt c9a326ffb217c4dc7f72ccf02aba9abf9ec94ca40aa47d848f57741e313a7df52b80f8cca9130acc5930815a1728d93bd781b29d4598eb5cbcaf55ef6e2a7d98  nfsnobody.txt如何防止系统中木马

linux常见查出病毒方法

1.事先做好指纹,时候进行检查

2.rpm -aV  比较yum安装或rpm安装的软件是否变化
3.查病毒软件:clamav 

练习题总结

定时任务

每天晚上12点打包备份/etc/目录

1.打包备份到/backup目录 
3.保留每周1的备份
2.删除7天之前的备份

[root@nfsnobody backup]# cat /server/scripts/find.sh #!/bin/bash#tar+findtar zcf /backup/$(date +%F_%w).tar.gz /etc/find /backup/ -type f -mtime +7 ! -name "*_1.tar.gz"|xargs rm -f[root@nfsnobody backup]# crontab -l#tar+find  2018/8/13#00 00 * * *  /bin/sh /server/scripts/find.sh >dev/null 2>&1

批量创建用户

批量添加3个用户stu01,stu02....stu10,并设置123456      (禁止使用for,while等循环) 

命令拼接(弄出命令样子,最后交给bash执行)
& 前面正则表达式匹配到的内容

1.目标useradd stu01;echo 123456|passwd --stdin stu01  要生成这种的useradd stu02;echo 123456|passwd --stdin stu02useradd stu03;echo 123456|passwd --stdin stu032.生成名字[root@nfsnobody ~]# echo stu{01..3}|xargs -n1stu01stu02stu033.开始进行拼接-sed[root@nfsnobody ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd &#g'useradd stu01useradd stu02useradd stu03[root@nfsnobody ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd &;echo 123456|passwd --stdin &#g'useradd stu01;echo 123456|passwd --stdin stu01useradd stu02;echo 123456|passwd --stdin stu02useradd stu03;echo 123456|passwd --stdin stu034.挑选一条进行测试[root@nfsnobody ~]# useradd stu03;echo 123456|passwd --stdin stu03Changing password for user stu03.passwd: all authentication tokens updated successfully.5.交给bash执行[root@nfsnobody ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd &;echo 123456|passwd --stdin &#g' |bashChanging password for user stu01.passwd: all authentication tokens updated successfully.Changing password for user stu02.passwd: all authentication tokens updated successfully.useradd: user 'stu03' already existsChanging password for user stu03.passwd: all authentication tokens updated successfully.命令拼接(弄出命令样子,最后交给bash执行)

批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环)

[root@CentOS ~]# echo stu{01..3}|xargs -n1|sed -r 's#.*#useradd & ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin &#g'useradd stu01 ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin stu01useradd stu02 ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin stu02useradd stu03 ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin stu03

转载地址:http://iuuki.baihongyu.com/

你可能感兴趣的文章
Perl 注释
查看>>
数据类型之标量
查看>>
调试 Perl 脚本
查看>>
增强的for循环语句
查看>>
方法的可变参数
查看>>
静态导入
查看>>
java 泛型
查看>>
控制结构
查看>>
标准输入输出
查看>>
运算符
查看>>
数据类型之列表与数组
查看>>
线程交互
查看>>
向脚本传递参数
查看>>
格式化输出
查看>>
重定向输入输出
查看>>
数据类型之哈希
查看>>
正则表达式
查看>>
线程池
查看>>
包和模块
查看>>
类和对象
查看>>