linux运维、架构之路-linux磁盘管理
一、企业中磁盘选购:
1、线上的业务,用SAS磁盘
2、线下的业务,用SATA磁盘,磁带库
3、线上高并发、小容量(多人浏览力图片)的业务,SSD磁盘
4、根据数据的访问热度,智能分析分层存储,SATA+SSD
二、常见磁盘类型与接口类型:SAS 、SATA、 SCSI、 PHI-E
三、磁盘内部原理
1、磁头:用来写入和读取数据,盘面的数量=磁头的数量
2、磁道(Track)
3、扇区:磁道上面的最小单位,默认大小为512字节
4、柱面
5、单元块:表示一个柱面的大小
四、生产环境常用RAID级别:RAID0,RAID1,RAID5,RAID10
1、RAID是磁盘阵列所使用的主要技术。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组
RAID级别 |
最少磁盘要求 |
关键优点 |
关键缺点 |
应用场景 |
RAID0 |
1块 |
读写速度很快 |
没有任何冗余 |
MySQL Slave,集群的节点 |
RAID1 |
2块 |
100%冗余,镜像 |
读写一般,成本高 |
单独服务器,数据重要,且不能宕机的业务,监控系统般等 |
RAID5 |
3块 |
具备一定性能和冗余,可以坏一块盘 |
写入性能不高 |
一般的业务都可以使用 |
RAID10 |
4块 |
读写速度都很快,100%冗余 |
成本高 |
性能和没队要求很好的业务,MySQL主库和NFS主节点 |
2、 磁盘分区
①磁盘分区有三种:主分区、扩展分区、逻辑分区
一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个
②磁盘分区命名
sata第一块硬盘 sda
sata第二块硬盘 sdb
sata磁盘第一块硬盘的第一个分区 sda1
sata磁盘第一块硬盘的第一个逻辑 sda5
③MBR主引导扇区,它仅仅包含一个64个字节的硬盘分区表
五、分区工具fdisk、parted
1 、fdisk用法和参数(只能用于小于2T的磁盘分区)
n (add a new partition) |
创建分区 |
p (print the partition table) |
显示磁盘分区表 |
d (delete a partition) |
删除一个分区 |
q (quit without saving changes) |
退出不保存 |
w (write table to disk and exit) |
退出并保存 |
新添加一个100M小磁盘:
[root@nfs-server ~]# fdisk -l|egrep "sd[a-z]:"
Disk /dev/sda: MB, bytes
Disk /dev/sdb: MB, bytes
[root@nfs-server ~]# fdisk /dev/sdb
Command (m for help): n #——>输入n为创建分区
Command action
e extended
p primary partition (-) #——>输入p选择创建主分区
Partition number (-):
First cylinder (-, default ):
Using default value
Last cylinder, +cylinders or +size{K,M,G} (-, default ): +50M #——>为主分区选择大小50M Command (m for help): w #——>保存分区修改并退出
2、parted用法和参数(大于2T的磁盘分区需要)
mklabel,mktable LABEL-TYPE |
创建磁盘分区表 |
mkpart PART-TYPE [FS-TYPE] START END |
创建分区 |
|
显示磁盘分区表信息 |
rm NUMBER |
删除一个分区 |
新添加一个100M小磁盘:
[root@nfs-server ~]# parted /dev/sdb
(parted) mklabel gpt #——>gpt分区引导,可以解决主分区最多只能有4个的问题
(parted) mkpart lidao 50 #——>创建一个分区名为lidao的分区,大小是50M
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I #——>忽略警告
(parted) q #——>退出,无需保存,即时生效
Information: You may need to update /etc/fstab.
[root@nfs-server ~]# ll /dev/sdb*
brw-rw---- root disk , Jul : /dev/sdb
brw-rw---- root disk , Jul : /dev/sdb1
小题:创建一个100m分区,挂载到/mnt目录上面
一、使用fdisk创建一个100M分区
[root@nfs-server ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (-)
p
Partition number (-):
First cylinder (-, default ):
Using default value
Last cylinder, +cylinders or +size{K,M,G} (-, default ): +100M
二、通知系统某个磁盘的分区表改变了
[root@nfs-server ~]# partprobe /dev/sdb
三、格式化这个分区
[root@nfs-server ~]# mkfs.ext4 /dev/sdb1
四、挂载/dev/sdb1
[root@nfs-server ~]# mount /dev/sdb1 /mnt/
[root@nfs-server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 .9G .5G .1G % /
tmpfs 242M 242M % /dev/shm
/dev/sda1 190M 34M 146M % /boot
/dev/sdb1 94M 1.6M 88M % /mnt
五、文件系统开机自动挂载
方法1、echo "mount /dev/sdb1 /mnt/" >>/etc/rc.local
方法2、放到/etc/fstab配置文件中tail - /etc/fstab
/dev/sdb1 /mnt ext4 defaults
3、文件系统及工作中JAVA环境下内存不够用临时增加swap空间
CentOS 5 默认文件系统:ext3
CentOS 6 默认文件系统:ext4
CentOS 7 默认文件系统:xfs
JAVA环境下,内存不够用,如何临时增加swap空间
[root@nfs-server ~]# free –h ——查看当前系统内存使用情况
total used free shared buffers cached
Mem: 482M 120M 362M 232K 13M 34M
-/+ buffers/cache: 72M 409M
Swap: 767M 0B 767M
第一步:创建文件(块)
[root@nfs-server ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=
+ records in
+ records out
bytes ( MB) copied, 1.45189 s, 72.2 MB/s
[root@nfs-server ~]# ll -h /tmp/100m
-rw-r--r-- root root 100M Jul : /tmp/100m
第二步:让这个文件(块)成为swap
[root@nfs-server ~]# mkswap /tmp/100m
mkswap: /tmp/100m: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version , size = KiB
no label, UUID=d2e62cdf--439e-91ec-828db8e7158d
第三步:增加系统正在使用的swap
[root@nfs-server ~]# swapon /tmp/100m
[root@nfs-server ~]# free -h
total used free shared buffers cached
Mem: 482M 354M 127M 232K 30M 219M
-/+ buffers/cache: 105M 377M
Swap: 867M 0B 867M
第四步:开机自动挂载swap
echo "swapon /tmp/100m" >>/etc/rc.local
linux运维、架构之路-linux磁盘管理的更多相关文章
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- 教老婆学Linux运维(二)Linux常用命令指南【上】
目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三 ...
- 教老婆学Linux运维(二)Linux常用命令指南【下】
目录 tips:紧接上一篇,Linux常用命令指南[上] 2.4 文件解压缩 2.4.1 官宣的linux压缩工具:tar tar的基本命令格式为 tar [参数选项] [文件或目录] 我们前面学的命 ...
- Linux运维入门到高级全套常用要点
Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...
- 最适合初学者的Linux运维学习教程2018版
Linux运维工程师是一个新颖岗位,现在非常吃香,目前从行业的角度分析,随着国内软件行业不断发展壮大,越来越多复杂系统应运而生,为了保证系统稳定运行,必须要有足够多的Linux运维工程师.维护是软件生 ...
- 其它综合-运维老鸟分享linux运维发展路线规划
运维老鸟分享linux运维发展路线规划 linux 运维发展路线常见的就是下面两条路线: 第一条:运维应用-->系统架构-->运维开发-->系统开发 第二条:运维应用-->应用 ...
- [ Linux运维学习 ] 路径及实战项目合集
我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. ...
- 运维是做什么的?史上最全互联网Linux工作规划!十分钟找到linux运维工程师职业方向!
首先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切. Linux因其高效率.易于裁剪.应用广等优势,成为了当今中高端服务器 ...
- Linux运维工程师学习大纲
linux运维课程大纲: Linux运维: Linux系统管理: Linux服务及安全管理: httpd,lamp,lnmp cache:memcached,varnish DB:mysql(mari ...
- Linux运维的第一周总结
这个阶段主要学习 Linux 运维技术,包括 Linux 基本操作.Bash 编程.应用服务部署.数据库服务部署.日志管理.系统监控等. 第1周: Linux基础本周学习 Linux 基本操作.用户与 ...
随机推荐
- 005-spring-data-elasticsearch 3.0.0.0使用【三】-spring-data之Spring数据扩展
续 1.8.Spring数据扩展 这些扩展使Spring Data在各种环境下的使用成为可能.目前大部分的整合都是针对Spring MVC. 1.8.1.Querydsl扩展 Querydsl是一个框 ...
- usb接口类型 简单分类辨识
usb接口类型 简单分类辨识 - [相似百科] 庆欣 0.0 4 人赞同了该文章 1. 先放图,随着越来越多的接触智能设备,会遇到各种各样的usb接口,对于很多人来说,接口类型只有:usb接口,安卓接 ...
- 【Unity Shader】---准确认识SubShader语义块结构、渲染状态设定、Tags标签
一[SubShader] 每个UnityShader文件可以包含多个SubShader语义块,但至少要有一个.当Unity需要加载这个UnityShader时,Unity会扫描所有的SubShader ...
- UDP信号驱动IO
SIGIO信号 信号驱动式I/O不适用于TCP套接字, 因为产生的信号过于频繁且不能准确判断信号产生的原因. 设置信号驱动需把sockfd的非阻塞与信号驱动属性都打开 server sockfd单独提 ...
- VS2012发布Web应用程序
一.右键项目-->发布 二.配置文件:新建-->配置文件名称,如MyProject 三.连接:1.发布方法:文件系统 2.目标位置:自己在本地建立一个文件夹 3.目标URL:可以不填 四 ...
- thead tbody tfoot
<!DOCTYPE html> <html lang="en"> <head> <title>Title</title> ...
- java枚举详解
枚举的本质是类,枚举是用来构建常量数据结构的模板(初学者可以以此方式理解: public static final X=xxx),枚举的使用增强了程序的健壮性,在引用一个不存在的枚举值的时候,编译器会 ...
- java_第一年_JavaWeb(11)
自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...
- 将图片地址转为blob格式的例子
HTML代码: <div id="forAppend" class="demo"></div> Javascript代码: <sc ...
- Python 3实现网页爬虫
1 什么是网页爬虫 网络爬虫( 网页蜘蛛,网络机器人,网页追逐者,自动索引,模拟程序)是一种按照一定的规则自动地抓取互联网信息的程序或者脚本,从互联网上抓取对于我们有价值的信息.Tips:自动提取网页 ...