磁盘管理-上部

磁盘体系

磁盘组成
磁盘 硬盘  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 -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
255 磁头   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+2
1+2
[root@nfsnobody ~]# echo 1+2|bc
3
[root@nfsnobody ~]# echo  'scale=5;3/4' |bc
.75000
[root@nfsnobody ~]# echo  10/3|bc -l
3.33333333333333333333
awk '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         查看文件的md5
3fe396c01f03425cb5e2da8186eb090d  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: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match

sha系列

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

[root@nfsnobody ~]# sha
sha1sum    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+find
tar 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 stu02
useradd stu03;echo 123456|passwd --stdin stu03
2.生成名字
[root@nfsnobody ~]# echo stu{01..3}|xargs -n1
stu01
stu02
stu03
3.开始进行拼接-sed
[root@nfsnobody ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd &#g'
useradd stu01
useradd stu02
useradd stu03
[root@nfsnobody ~]# echo stu{01..3}|xargs -n1|sed 's#.*#useradd &;echo 123456|passwd --stdin &#g'
useradd stu01;echo 123456|passwd --stdin stu01
useradd stu02;echo 123456|passwd --stdin stu02
useradd stu03;echo 123456|passwd --stdin stu03
4.挑选一条进行测试
[root@nfsnobody ~]# useradd stu03;echo 123456|passwd --stdin stu03
Changing 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' |bash
Changing 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 exists
Changing 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 stu01
useradd stu02 ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin stu02
useradd stu03 ;echo $[$RANDOM+100000000]|tr "[0-9]" "[a-z]"|passwd --stdin stu03
上一篇:Linux用户和组管理及其相关命令


下一篇:Ubuntu添加用户adduser和useradd