韩立刚老师视频教学+QQ答疑

 

韩老师腾讯课堂直播课程http://91xueit.ke.qq.com。课后集中答疑。

课程介绍http://www.91xueit.com韩老师QQ458717185 QQ教学群:82819921

 

韩老师15IT职业化培训知识沉淀和IT企业技术支持经验积累,凝聚成体系完整的IT课程,从0起点到IT专家,你只需要1年的时间,韩老师做你的技术后盾,从此你不用在到处搜索学习资料,参加学费高昂的培训班,成为韩老师的正式学生,就是韩老师的徒弟,解答学习和工作中遇到的问题,一生的师徒关系。

学习没有捷径,但有老师的知道,却可以少走弯路。

IT系统集成课程涵盖企业主流IT技术,目前视频2500个,课时25000分钟。这些课程足可以让你在企业IT部门独当一面。

n 包括网络计算机网络原理CCNACCNP华为网络工程师课程

n 操作系统包括Windows2008 2012服务器管理网络基础服务活动目录Linux系统管理Linux网络服务器Linux安全

n 数据库包括数据设计数据库开发和数据库管理微软SQLServerMySQLOracle

n 网络安全包括数据存储安全数据传输安全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

 

 

文件夹和文件名

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

spacer.gif

/var/log/messages

创建文件的过程

删除文件的过程

复制文件的过程

剪贴文件的过程

du

显示文件夹大小

[root@WebServer /]# du -s /root/   

183752  /root/

[root@WebServer /]# du -sh /root/

180M    /root/

链接文件

硬链接

  1. 只能针对文件不能用于目录

  2. 不能跨分区

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

软连接符号连接

  1. 可以给目录和文件创建软连接

  2. 可以跨文件系统

  3. 不会增加被连接的次数

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

设备文件

块设备  按块为单位随机访问设备

字符设备以字符为单位线性访问

 b 硬盘

c   键盘

主设备号 major number 用于标识设备类型

次设备号 ninor number  用于标识同一类型的不同设备

mknod mydev c 66 0

查看有哪些用户登录了Linux

who

查看当前登录的用户

Who am i

 

给设备发数据

echo “Hello”>>/dev/pts/1

echo “Hellosadfasdfasfasdfadf”>>/dev/sda

 

创建分区

存储设备类型

U  光盘软盘硬盘磁带

 

IDE ATA     hd

SATA       sd

SCSI       sd

USB       sd

使用a  b  c来区分同一类型下的不同设备

 

Sda1  sda2  sda3

 

fdisk –l    查看所有硬盘的所有分区

fdisk –l  /dev/sda

p 打印现在分区表

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/sdb6

backup

 

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/media

umount  /dev/sdb1

umount  /mnt/media

 

mount 选项

-o ro 以只读模式加载。

-o rw 以可读写模式加载。

-o remount

-o noexec

mount -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 使用默认的选项。默认选项为rwsuiddevexecanto nouserasync

逻辑卷LVM

创建物理卷卷组逻辑卷

fdisk /dev/sdb

t

创建磁盘分区将分区类型更改为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

 

缩减逻辑卷

注意

  1. 不能在线缩减,先卸载文件系统

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

  3. 强制进行文件系统检查

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

  5. 在缩减逻辑卷物理空间

查看文件系统可用空间

[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

韩立刚技术答疑 QQ458717185

磁盘阵列(Redundant Arrays of Independent DisksRAID

RAID-0 条带卷又很好的读写性能不容错

RAID-1 镜像卷写入性能一般读快容错 50%浪费

RAID-5 至少3块盘只允许坏一块盘 1/3 读写性能好坏掉一个盘读慢

 

高级磁盘阵列

RAID-50

RAID-10

RAID-01

 

RAID

RAID

Linux实现RAID

Multi Disk

mdadm

模式化命令

   创建阵列 –C

     专用选项

     -l 级别 0 1 5

     -n 设备个数

     -a 自动为其创建设备文件

     -c 指定数据块大小 64K

     -x 指定备用磁盘

管理模式 --add –remove --fail

监控模式 –F

增长模式 –G

装配模式 –A

 

创建RAID-0

fdisk /dev/sdb

t

fd

wq

安装yum install mdadm

创建RAID0

[root@WebServer ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sd{b,c}1

mkfs -t ext3 /dev/md0

mkdir /mnt/md0

mount /dev/md0 /mnt/md0

 

查看状态

cat /proc/mdstat

mdadm -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

 

连接网络存储设备

韩立刚技术答疑 QQ458717185

 

 

DASDirect Attached Storage—直接连接存储)

 

NASNetwork Attached Storage网络连接存储,使用CIFSNFS文件系统

 

存储区域网络(Storage Area Network,简称SAN)通过光纤通道连接到一群计算机上,使用独立的网络连接网络层存储 FS iSCSI

    

配置SAN

 [root@WebServer ~]# yum list | grep scsi-target

scsi-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

 

以上命令创建一个targetiqn.2015.05.20.dbid1

--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