您的位置:首页 > 运维架构 > Linux

韩老师Linux磁盘管理课程笔记

2015-06-02 15:37 1076 查看
韩立刚老师视频教学+QQ答疑 韩老师腾讯课堂直播课程http://91xueit.ke.qq.com。课后集中答疑。课程介绍http://www.91xueit.com韩老师QQ:458717185 QQ教学群:82819921
韩老师15年IT职业化培训知识沉淀和IT企业技术支持经验积累,凝聚成体系完整的IT课程,从0起点到IT专家,你只需要1年的时间,韩老师做你的技术后盾,从此你不用在到处搜索学习资料,参加学费高昂的培训班,成为韩老师的正式学生,就是韩老师的徒弟,解答学习和工作中遇到的问题,一生的师徒关系。学习没有捷径,但有老师的知道,却可以少走弯路。IT系统集成课程涵盖企业主流IT技术,目前视频2500个,课时25000分钟。这些课程足可以让你在企业IT部门独当一面。n 包括网络计算机网络原理CCNACCNP华为网络工程师课程n 操作系统包括Windows2008 2012服务器管理网络基础服务活动目录Linux系统管理Linux网络服务器Linux安全n 数据库包括数据设计数据库开发和数据库管理微软SQLServer、MySQL和Oraclen 网络安全包括数据存储安全数据传输安全PKI技术IPSec企业级高级防火墙上网行为管理,Web服务器攻防。n 虚拟化技术包括微软Hyper-V VMWareWorkstationsvSphere5.5 Citrix桌面虚拟化n 企业级应用微软邮件服务器Exchange2010 微软企业门户网站MOSS群集技术NLB群集和双机热备群集n 云计算大数据

Linux磁盘管理

硬盘物理结构

磁道扇区柱面

硬盘的逻辑结构

主引导扇区

MBR磁盘的第0磁道 0柱面 1扇区一共512字节 不是被操作系统识别的 主引导记录 Master Boot Record Main Boot Record 一共512字节446byte Bootloader 剩下的64byte 16byte 标识一个分区只能标识4个分区 2byte Magic Number (魔数) 标记MBR是否有效

分区和文件系统

文件管理系统 元数据存储区存放文件Metadata 数据存储区 划分成块 磁盘有个快位图 每个块对应一个存储位可以找空闲块 元数据存储和数据要匹配大小 Inode位图 df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况查看分区不挂载到某个目录不能访问查看磁盘块的使用情况root@WebServer /]# df 文件系统 1K-块 已用 可用已用% 挂载点/dev/sda2 20158332 2335864 16798468 13% /tmpfs 957340 72 957268 1% /dev/shm/dev/sda1 198337 27720 160377 15% /boot/dev/sda3 20158332 176096 18958236 1% /home/dev/sda5 20158332 176368 18957964 1% /tmp转换单位显示[root@WebServer /]# df -h文件系统 容量 已用 可用已用%% 挂载点/dev/sda2 20G 2.3G 17G 13% /tmpfs 935M 72K 935M 1% /dev/shm/dev/sda1 194M 28M 157M 15% /boot/dev/sda3 20G 172M 19G 1% /home/dev/sda5 20G 173M 19G 1% /tmp 查看可用的inode[root@WebServer /]# mkdir /tmp/ds [root@WebServer /]# df -i文件系统 Inode 已用(I) 可用(I) 已用(I)%% 挂载点/dev/sda2 1281120 68716 1212404 6% /tmpfs 239335 3 239332 1% /dev/shm/dev/sda1 51200 38 51162 1% /boot/dev/sda3 1281120 19 1281101 1% /home/dev/sda5 1281120 85 1281035 1% /tmp-P选项使用posix标准长文件夹不换行显示[root@WebServer /]# df -iP文件系统 Inode 已用(I) 可用(I) 已用(I)%% 挂载点/dev/sda2 1281120 68716 1212404 6% /tmpfs 239335 3 239332 1% /dev/shm/dev/sda1 51200 38 51162 1% /boot/dev/sda3 1281120 19 1281101 1% /home/dev/sda5 1281120 85 1281035 1% /tmp

文件夹和文件名

目录上存放文件名需要占用磁盘块

/var/log/messages创建文件的过程删除文件的过程复制文件的过程剪贴文件的过程

du

显示文件夹大小[root@WebServer /]# du -s /root/ 183752 /root/[root@WebServer /]# du -sh /root/180M /root/

链接文件

硬链接只能针对文件不能用于目录

不能跨分区

能更改增加文件被连接的次数

软连接符号连接可以给目录和文件创建软连接

可以跨文件系统

不会增加被连接的次数

其大小是指向路径所包含的字符个数

设备文件

块设备 按块为单位随机访问设备字符设备以字符为单位线性访问 b 硬盘c 键盘主设备号 major number 用于标识设备类型 次设备号 ninor number 用于标识同一类型的不同设备mknod mydev c 66 0查看有哪些用户登录了Linuxwho查看当前登录的用户Who am i 给设备发数据echo “Hello”>>/dev/pts/1echo “Hellosadfasdfasfasdfadf”>>/dev/sda

创建分区

存储设备类型U盘 光盘软盘硬盘磁带 IDE ATA hdSATA sdSCSI sdUSB sd使用a b c来区分同一类型下的不同设备 Sda1 sda2 sda3 fdisk –l 查看所有硬盘的所有分区fdisk –l /dev/sdap 打印现在分区表n 创建的新的分区 e 扩展分区 p 主分区d 删除分区w 保存退出q 不保存退出fdisk命令删除前面的字符ctrl+backspace

创建文件系统高级格式化

超级快 每个块组描述符(Group Descriptor)存储一个块组的描述信息,例如在这个块组中从哪里开始是inode表,从哪里开始是数据块,空闲的inode和数据块还有多少个等等Linux支持的文件系统[root@WebServer ~]# ll /lib/modules/2.6.32-358.el6.x86_64/kernel/fs/

mkfs

-t 指定文件系统类型 mkfs.ext2 mkfs.ext3 mkfs.ext4-b 指定磁盘块大小-L 指定卷标 [root@WebServer ~]# mkfs -t ext3 -b 1024 -L "test" /dev/sdb6[root@WebServer ~]# mkfs. ext3 -b 1024 -L "test" /dev/sdb6

blkid 显示分区文件系统信息

mke2fs

(make ext2 file system)-j ext3格式化为日志文件系统-b 块大小 1024 2048 4096 8192-L 指定卷标-m 指定预留给管理员磁盘块5%-i 指定一个Inode保留的块大小 2048

e2label

查看和设置分区卷标[root@WebServer ~]# e2label /dev/sdb6 "backup"[root@WebServer ~]# e2label /dev/sdb6backup

tune2fs

tune2fs是调整和查看ext2/ext3文件系统的文件系统参数-l 查看文件系统信息-c 设置强制自检的挂载次数-i 设置强制自检的时间间隔 d m w-m 设置为管理员保留的磁盘快百分比-j 将ext2 转成 ext3 文件系统-L 修改文件系统的卷标-r 调整系统保留的磁盘空间-o 设置分区的默认挂载项 [root@WebServer ~]# tune2fs -L "test" /dev/sdb6 [root@WebServer ~]# tune2fs -l /dev/sdb6 [root@WebServer ~]# tune2fs -j /dev/sdb6[root@WebServer ~]# tune2fs -m 2 /dev/sdb6 [root@WebServer ~]# tune2fs -r 4000 /dev/sdb6

dumpe2fs

显示分区超级块和块组信息dumpe2fs /dev/sdb1只显示分区超级快信息dumpe2fs -h /dev/sdb1

挂载文件系统

挂在磁盘分区

mount –t ext2 /dev/sdb1 /mnt/mediaumount /dev/sdb1 umount /mnt/media mount 选项-o ro 以只读模式加载。 -o rw 以可读写模式加载。-o remount-o noexecmount -o remount,rw /dev/sdb1 /mnt/media/ 使用卷标进行挂载[root@WebServer ~]# mount LABEL=test /mnt/test/

挂载ISO文件

root@WebServer ~]# mount -o loop /root/linux.iso /mnt/iso/

挂载网络共享的文件夹

[root@WebServer ~]# mount -t cifs -o username=han,password=a1! //192.168.80.1/shipin /mnt/Windows/

查看已经挂载的文件系统

df 显示已挂载的磁盘分区大小和使用情况df –i 显示分区inode节点使用情况df –h 以K M G的方式显示分区大小df -t ext4显示ext4文件系统的信息

卸载文件挂载点失败如何解决

[root@WebServer ~]# fuser -cu /mnt/test//mnt/test/: 2068c(root)[root@WebServer ~]# fuser -k /mnt/test/ /mnt/test/: 2068c[root@WebServer ~]# fuser -cu /mnt/test/[root@WebServer ~]# umount /mnt/test/

自动挂载文件系统

vi /etc/fstab async 以非同步的方式执行文件系统的输入输出动作。 sync 以同步方式执行文件系统的输入输出动作。 atime 每次存取都更新inode的存取时间,默认设置。 noatime 每次存取时不更新inode的存取时间。 auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。 noauto 无法使用-a参数来加载。 exec 可执行二进制文件,取消选项为noexec。 noexec 无法执行二进制文件。 dev 可读文件系统上的字符或块设备,取消选项为nodev。 nodev 不读文件系统上的字符或块设备。 ro 以只读模式加载。 rw 以可读写模式加载。 defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。

逻辑卷LVM

创建物理卷卷组逻辑卷

fdisk /dev/sdbt创建磁盘分区将分区类型更改为8e 创建物理卷[root@WebServer ~]# pvcreate /dev/sdb1[root@WebServer ~]# pvcreate /dev/sdc1显示物理卷[root@WebServer ~]# pvdisplay 创建卷组[root@WebServer ~]# vgcreate vlmdisk /dev/sdb1 /dev/sdc1显示创建的卷组[root@WebServer ~]# vgdisplay在卷组上创建逻辑卷[root@WebServer ~]# lvcreate -L 120G -n OracleDB vlmdisk[root@WebServer ~]# lvcreate -L 20G -n OracleLog vlmdisk显示创建的逻辑卷[root@WebServer ~]# lvdisplay格式化逻辑卷[root@WebServer ~]# mkfs -t ext4 /dev/vlmdisk/OracleDB[root@WebServer ~]# mkfs -t ext4 /dev/vlmdisk/OracleLog挂载逻辑卷[root@WebServer ~]# mount /dev/vlmdisk/OracleDB /mnt/DB/[root@WebServer ~]# mount /dev/vlmdisk/OracleLog /mnt/Log/

扩展卷组

创建新的磁盘分区使用这个命令将新的磁盘分区读入操作系统内核[root@WebServer ~]# partx -a /dev/sdc创建物理卷[root@WebServer ~]# pvcreate /dev/sdc2向卷组中添加物理卷[root@WebServer ~]# vgextend lvmdisk /dev/sdc2 将物理卷数据移动到另外一个物理卷[root@WebServer ~]# pvmove /dev/sdc1 /dev/sdc2将物理卷从卷组中删除[root@WebServer ~]# vgreduce vlmdisk /dev/sdc1查看物理卷[root@WebServer ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vlmdisk lvm2 a-- 100.00g 0 /dev/sdc1 lvm2 a-- 50.01g 50.01g /dev/sdc2 vlmdisk lvm2 a-- 50.00g 10.01g

管理逻辑卷

扩展物理边界添加到40G[root@WebServer ~]# lvextend -L 40G /dev/vlmdisk/OracleLog扩展物理边界增加20G[root@WebServer ~]# lvextend -L +20G /dev/vlmdisk/OracleLog查看逻辑卷大小[root@WebServer ~]#lvdisplay扩展文件系统逻辑边界[root@WebServer ~]# resize2fs /dev/mapper/vlmdisk-OracleLog查看文件系统大小[root@WebServer ~]#df -h 缩减逻辑卷注意不能在线缩减,先卸载文件系统

确保缩减后的空间大小能够存储原来数据

强制进行文件系统检查

使用resize2fs 先缩减文件系统空间

在缩减逻辑卷物理空间

查看文件系统可用空间[root@WebServer ~]# df –h卸载文件系统[root@WebServer ~]# umount /mnt/DB/强制进行文件系统检查[root@WebServer ~]# e2fsck -f /dev/mapper/vlmdisk-OracleDB缩减文件系统空间[root@WebServer ~]# resize2fs /dev/mapper/vlmdisk-OracleDB 60G[root@WebServer ~]# lvdisplay减少逻辑卷的物理空间[root@WebServer ~]# lvreduce -L 60G /dev/mapper/vlmdisk-OracleDB[root@WebServer ~]# lvdisplay挂载文件系统[root@WebServer ~]# mount /dev/mapper/vlmdisk-OracleDB /mnt/DB

快照卷

1.快照卷生命周期在这段时间数据增长不能超出快照卷大小最保险的快照卷和快照卷大小一致最保险2.快照卷是只读的3.快照卷和原卷在一个卷组Lvcreate –s 指定快照卷 -p r 指定权限是只读下面给OracleDB卷创建快照卷[root@WebServer ~]# lvcreate -L 1000M -n testlv_snap -s -p r /dev/vlmdisk/OracleDB删除快照卷[root@WebServer ~]# umount /mnt/testlv/[root@WebServer ~]# lvremove /dev/vlmdisk/testlv_snap

RAID

韩立刚技术答疑 QQ:458717185磁盘阵列(Redundant Arrays of Independent Disks,RAID)RAID-0 条带卷又很好的读写性能不容错RAID-1 镜像卷写入性能一般读快容错 50%浪费RAID-5 至少3块盘只允许坏一块盘 1/3 读写性能好坏掉一个盘读慢 高级磁盘阵列RAID-50RAID-10RAID-01 硬RAID软RAID

Linux实现RAID

Multi Diskmdadm模式化命令 创建阵列 –C 专用选项 -l 级别 0 1 5 -n 设备个数 -a 自动为其创建设备文件 -c 指定数据块大小 64K -x 指定备用磁盘管理模式 --add –remove --fail监控模式 –F增长模式 –G装配模式 –A

创建RAID-0

fdisk /dev/sdbtfdwq安装yum install mdadm创建RAID0[root@WebServer ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sd{b,c}1mkfs -t ext3 /dev/md0mkdir /mnt/md0mount /dev/md0 /mnt/md0 查看状态cat /proc/mdstatmdadm -D /dev/md0 停止阵列mdadm -S /dev/md0重新装配阵列mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1 将阵列保存到配置文件mdadm -D --scan >/etc/mdadm.conf 以后就可以使用配置文件装配磁盘阵列mdadm -A /dev/md0

RAID-1

创建RAID1[root@WebServer ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb2 /dev/sdc2 模拟损坏[root@WebServer ~]# mdadm /dev/md1 --fail /dev/sdb2[root@WebServer ~]# cat /mnt/md1/mirro.txt移除损害的磁盘[root@WebServer ~]# mdadm /dev/md1 -r /dev/sdb2添加一个新盘大小和以前的一定要一样实现数据同步[root@WebServer ~]# mdadm /dev/md1 -a /dev/sdd1 创建RAID1时指定备用分区 [root@WebServer ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb2 /dev/sdc2 -x 1 /dev/sde 扫描阵列配置将阵列配置进行保存到配置文件[root@WebServer ~]# mdadm -D --scan[root@WebServer ~]# mdadm -D --scan > /etc/mdadm.conf

RAID-5

让操作系统重新读取磁盘分区表[root@WebServer ~]# partx -a /dev/sdb[root@WebServer ~]# partx -a /dev/sdc 创建RAID5[root@WebServer ~]# mdadm -C /dev/md5 -a yes -l 5 -n 3 /dev/sd{c,b,d}2 -x 1 /dev/sde1模拟损害[root@WebServer ~]# mdadm /dev/md5 --fail /dev/sdb1查看状态[root@WebServer ~]# mdadm -D --detail /dev/md5移除[root@WebServer ~]# mdadm /dev/md5 -r /dev/sdb1添加[root@WebServer ~]# mdadm /dev/md5 -a /dev/sdb1 扫描阵列配置将阵列配置进行保存到配置文件[root@WebServer ~]# mdadm -D --scan[root@WebServer ~]# mdadm -D --scan > /etc/mdadm.conf

连接网络存储设备

韩立刚技术答疑 QQ:458717185 DAS(Direct Attached Storage—直接连接存储) NAS(Network Attached Storage)—网络连接存储,使用CIFS和NFS文件系统 存储区域网络(Storage Area Network,简称SAN)通过光纤通道连接到一群计算机上,使用独立的网络连接网络层存储 FS 或 iSCSI

配置SAN

[root@WebServer ~]# yum list | grep scsi-targetscsi-target-utils.x86_64 1.0.24-2.el6 rhel-source[root@WebServer ~]# yum install scsi-target-utils[root@WebServer ~]# service tgtd start[root@WebServer ~]# netstat -an | grep 3260 [root@WebServer ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2015-05.com.91xueit.dbdisk查看创建的target[root@WebServer ~]# tgtadm --lld iscsi --op show --mode target 以上命令创建一个target为iqn.2015.05.20.db,id为1 --op new 代表新建 --op delete 代表删除 --op show 代表显示 --op bind/unbind等等 LUN0是系统自动产生的,用来管理 device controller 向target分配一个物理的或文件的存储空间,再分配一个lun号; 可以向一个target分配一个或多个存储空间,而一个存储空间同时只能分配给一个target 现在我准备了一个划分好的分区和一个文件: 创建一个新的分区[root@WebServer ~]# partx -a /dev/sdb[root@WebServer ~]# partx -a /dev/sdc [root@WebServer ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1删除[root@WebServer ~]#tgtadm --lld iscsi --op delete --mode logicalunit --tid 1 --lun 1取消只读[root@WebServer ~]# tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params readonly=0 [root@WebServer ~]# tgtadm --lld iscsi --op show --mode target [root@WebServer ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.80.0/24 把任意访问的授权给去掉 tgtadm --lld iscsi --op unbind --mode target --tid 1 -I ALL 设置基于ip地址的授权 tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.80.200 授权一段IP tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.80.0/24 建立新帐号 tgtadm --lld iscsi --op new --mode account --user han --password www.91xueit.com显示账户信息[root@WebServer ~]# tgtadm --lld iscsi --op show --mode account 将一个帐号与一个Target绑定(bind) tgtadm --lld iscsi --op bind --mode account --tid 1 --user han 编辑配置文件vi /etc/tgt/targets.conf <target iqn.2015-05.com.91xueit.dbdisk> backing-store /dev/sdb1 backing-store /dev/sdc1 initiator-address 192.168.80.0/24</target> 关闭防火墙[root@WebServer ~]# service iptables stop[root@WebServer ~]# chkconfig iptables off 配置tgtd服务开机自动运行[root@WebServer ~]# chkconfig tgtd on 查看配置[root@WebServer ~]# tgt-admin –dump把当前配置保存到配置文件[root@WebServer ~]# tgt-admin --dump > /etc/tgt/targets.conf

配置Linux连接网络存储

[root@LinuxLV ~]# mount /dev/cdrom /mnt/cdrom/[root@LinuxLV ~]# yum list | grep iscsi[root@LinuxLV ~]# yum install iscsi-initiator-utils [root@LinuxLV ~]# service iscsi start[root@LinuxLV ~]# chkconfig iscsi on发现Target[root@LinuxLV ~]# iscsiadm -m discovery -t sendtargets -p 192.168.80.222查看发现的target[root@LinuxLV ~]#iscsiadm -m node [root@LinuxLV ~]# iscsiadm -m node -T iqn.2015-05.com.91xueit.dbdisk -p 192.168.80.222:3260 –l退出登陆[root@LinuxLV ~]# iscsiadm -m node -T iqn.2015-05.com.91xueit.dbdisk -p 192.168.80.222:3260 –u
本文出自 “韩立刚” 博客,请务必保留此出处http://91xueit.blog.51cto.com/400469/1657521
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: