当前位置:文档之家› Linux下MPIO

Linux下MPIO

Linux下MPIO
Linux下MPIO

Linux下MPIO

一、什么是多路径

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:

1.故障的切换和恢复

2.IO流量的负载均衡

3.磁盘的虚拟化

由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

二、Linux下multipath介绍,需要以下工具包:

在CentOS 5中,最小安装系统时multipath已经被安装,查看multipath是否安装如下:

1、device-mapper-multipath:即multipath-tools。主要提供multipathd和multipath等工具和 multipath.conf等配置文件。这些工具通过device mapper 的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。创建的多路径设备会在/dev /mapper中)。

2、 device-mapper:主要包括两大部分:内核部分和用户部分。内核部分主要由device mapper核心(dm.ko)和一些target driver(md-multipath.ko)。核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些divece的属性等。linux device mapper的用户空间部分主要包括

device-mapper这个包。其中包括dmsetup工具和一些帮助创建和配置mappered device的库。这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。multipath-tool的程序中就需要调用这些库。

3、dm-multipath.ko和dm.ko:dm.ko是device mapper驱动。它是实现multipath 的基础。dm-multipath其实是dm的一个target驱动。

4、scsi_id:包含在udev程序包中,可以在multipath.conf中配置该程序来获取scsi设备的序号。通过序号,便可以判断多个路径对应了同一设备。这个是多路径实现的关键。scsi_id是通过sg驱动,向设备发送EVPD page80或page83 的inquery命令来查询scsi设备的标识。但一些设备并不支持EVPD 的inquery 命令,所以他们无法被用来生成multipath设备。但可以改写scsi_id,为不能提供scsi设备标识的设备虚拟一个标识符,并输出到标准输出。multipath程序在创建multipath设备时,会调用scsi_id,从其标准输出中获得该设备的scsi id。在改写时,需要修改scsi_id程序的返回值为0。因为在multipath程序中,会检查该直来确定scsi id是否已经成功得到。

三、multipath在CentOS 5中的基本配置过程:

1、安装和加载多路径软件包

# yum –y install device-mapper device-mapper-multipath

# chkconfig –level 2345 multipathd on #设置成开机自启动multipathd

# lsmod |grep dm_multipath #来检查安装是否正常

如果模块没有加载成功请使用下列命初始化DM,或重启系统

---Use the following commands to initialize and start DM for the first time:

# modprobe dm-multipath

# modprobe dm-round-robin

# service multipathd start

# multipath –v2

2、配置multipath:

Multipath的配置文件是/etc/multipath.conf , 如需要multipath正常工作只需要如下配置即可:(如果需要更加详细的配置,请看本文后续的介绍)

blacklist {

devnode "^sda"

}

defaults {

user_friendly_names yes

path_grouping_policy multibus

failback immediate

no_path_retry fail

}

# vi /etc/multipath.conf

3、multipath基本操作命令

# /etc/init.d/multipathd start #开启mulitipath服务

# multipath -F #删除现有路径

# multipath -v2 #格式化路径

# multipath -ll #查看多路径

如果配置正确的话就会在/dev/mapper/目录下多出mpath0、mpath1等之类设备。

用fdisk -l命令可以看到多路径软件创建的磁盘,如下图中的/dev/dm-[0-3]

4、multipath磁盘的基本操作

要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行. 在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:

# pvcreate /dev/mapper/mpath0

# fdisk /dev/mapper/mpath0

用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会。

fdisk对多路径软件生成的磁盘进行分区之后,所生成的磁盘分区并没有马上添加到/dev/目录下,此时我们要重启IPSAN或者FCSAN的驱动,如果是用

iscsi-initiator来连接IPSAN的重启ISCSI服务就可以发现所生成的磁盘分区了

# service iscsi restart

# ls -l /dev/mapper/

如上图中的mpath0p1和mpath1p1就是我们对multipath磁盘进行的分区

# mkfs.ext3 /dev/mapper/mpath0p1 #对mpath1p1分区格式化成ext3文件系统

# mount /dev/mapper/mpath0p1 /ipsan/ #挂载mpath1p1分区

四、multipath的高有配置

以上都是用multipath的默认配置来完成multipath的配置,比如映射设备的名称,multipath 负载均衡的方法都是默认设置。那有没有按照我们自己定义的方法来配置multipath呢,当可以。

1、multipath.conf文件的配置

接下来的工作就是要编辑/etc/multipath.conf的配置文件

multipath.conf主要包括blacklist、multipaths、devices三部份的配置

blacklist配置

blacklist {

devnode "^sda"

}

Multipaths部分配置multipaths和devices两部份的配置。

multipaths {

multipath {

wwid **************** #此值multipath -v3可以看到

alias iscsi-dm0 #映射后的别名,可以随便取

path_grouping_policy multibus #路径组策略

path_checker tur #决定路径状态的方法

path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法

}

}

Devices部分配置

devices {

device {

vendor "iSCSI-Enterprise" #厂商名称

product "Virtual disk" #产品型号

path_grouping_policy multibus #默认的路径组策略

getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序

prio_callout "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序path_checker readsector0 #决定路径状态的方法

path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法

failback immediate #故障恢复的模式

no_path_retry queue #在disable queue之前系统尝试使用失效路径的次数的数值

rr_min_io 100 #在当前的用户组中,在切换到另外一条路径之前的IO 请求的数目

}

}

如下是一个完整的配置文件

blacklist {

devnode "^sda"

}

defaults {

user_friendly_names no

}

multipaths {

multipath {

wwid 14945540000000000a67854c6270b4359c66c272e2f356321

alias iscsi-dm0

path_grouping_policy multibus

path_checker tur

path_selector "round-robin 0"

}

multipath {

wwid 14945540000000000dcca2eda91d70b81edbcfce2357f99ee

alias iscsi-dm1

path_grouping_policy multibus

path_checker tur

path_selector "round-robin 0"

}

multipath {

wwid 1494554000000000020f763489c165561101813333957ed96

alias iscsi-dm2

path_grouping_policy multibus

path_checker tur

path_selector "round-robin 0"

}

multipath {

wwid 14945540000000000919ca813020a195422ba3663e1f03cc3

alias iscsi-dm3

path_grouping_policy multibus

path_checker tur

path_selector "round-robin 0"

}

}

devices {

device {

vendor "iSCSI-Enterprise"

product "Virtual disk"

path_grouping_policy multibus

getuid_callout "/sbin/scsi_id -g -u -s /block/%n"

path_checker readsector0

path_selector "round-robin 0"

}

}

获取wwid的方法:

(1)默认情况下,将使用/var/lib/multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定。

(2)# multipath -v3命令查找

2、负载均衡测试

使用dd命令来对设备进行写操作,并同时通过iostat来查看I/0状态,命令及输出如下:# dd if=/dev/zero of=/dev/mapper/iscsi-dm1p1

开启另外一个终端用以下命令查看IO情况

# iostat 10 10

通过上述输出,我们看到,在对/dev/mapper/iscsi-dm1p1读写时,实际上是通过对/dev/md-1包含的当前active的所有设备,即/dev/sde1,/dev/shl这2条路径来完成对实际的LUN的写过程。

3、路径切换测试

首先,我们拔掉服务器上一根网线,经过不到10秒,我们看到:MPIO成功地从上述“失败”的路径/dev/sel切换到了另外一条路径/dev/sdh1上。

如何学好Linux

如何学好Linux 1.安装系统和软件 通过安装,我们能了解Linux的目录结构;系统和软件的安装方法,以及基本目录、文件和用的操作,没有比这些更基础的吧。 2、对Linux对硬件的安装和维护; Linux是个系统,我们得把她用起来才能达到我们的目的。在生产、生活和或者娱乐中的应用,最能体现她的价值。比如我们要让Linux支持scsi ;raid ;usb; firewire; mouse; video card;TV card 等,无非就是应用。比如我有鼠标,在我的Linux中却用不起来,是不是有点浪费?? 3. 用户管理 Linux是一个多用户,多任务的系统,要让很多人能同时用这台机器的Linux,我们不得不经常对用户进行增加或者删除。有的弟兄可能会说,我的机器上只 有一个显示器一套键盘和鼠标,怎么让更多的用户应用呢??可能初学Linux 的弟兄可能早就明白了,比如web服务器,是不是多用户的呢??ftp服务器也应该是多用户的吧。咱们不是有远程登录ssh 和telnet吗?这个多用户可不是一台机器,几个人同时挤在同一个键盘和显示器上用不同用户名登录系统。 4.磁盘管理 磁盘是有限的,就是再大的磁盘需要管理。因为我们都是玩家,再大的磁盘也 感觉小。我现在有160的磁盘,我感觉还是不够用,所以要把有限的空间都利用上,还得对磁盘有个计划。。比如限制用户家目录空间;限制用户上传文件 大小;定时查看磁盘分区的利用率。管理员经常用fdisk -l 或者df -h du -h 查来看分区,目录的大小等 5.检测系统状态 有时学习Linux的弟兄总是问“为什么我的机器开机这么慢?”;“Linux真的是浪费内存,对不对?”等。其实这些问题都涉及到系统监测。比如CPU、内存、网络利用率等。因为生产型系统是必须有效率的。如果一台服务器反应迟钝,可能最急的是管理员。管理员首先要做的可能是查看系统运行状态。比如用top ; sar ; netstat等; 6.安全和备份;

献给初学者:谈谈如何学习Linux操作系统

献给初学者:谈谈如何学习Linux操作系统 一、选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是 有一点是可以肯定的,linux正在变得越来越流行,面对这么多的Linux发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需 要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面 我们就分类介绍。 1.1初学者入门首选-redhat系列 在学习redhat系列linux之前,首先要了解以下redhatlinux各个发行版本之 间的关系。 1.RedHatLinux RedHatLinux是redhat最早发行的个人版本的linux,其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux 发行套件,RedHat的历史悠久得多。自从RedHat9.0版本发布后,RedHat公司就不再开发桌面版的Linux发行套件,RedHatLinux停止了开发,而将全部 力量集中在服务器版的开发上,也就是RedHatEnterpriseLinux版。2004年4 月30日,RedHat公司正式停止对RedHat9.0版本的支持,标志著RedHatLinux的正式完结。原本的桌面版RedHatLinux发行套件则与来自开源 社区的Fedora进行合并,成为FedoraCore发行版本。 目前RedHat分为两个系列:由RedHat公司提供收费技术支持和更新的RedHatEnterpriseLinux,以及由社区开发的免费的FedoraCore。 2.FedoraCore FedoraCore(缩写为FC)被红帽公司定位为新技术的实验场地,许多新的技 术都会在FC中检验,如果稳定的话红帽公司则会考虑加入RedHatEnterpriseLinux中。 FedoraCore1发布于2003年年末,而FC的定位便是桌面用户。FC提供了 最新的软件包,同时,它的版本更新周期也非常短,仅6个月。由于版本更新 频繁,性能和稳定性得不到保证,因此,一般在服务器上不推荐采用FedoraCore。 其实可以这么认为,Fedora就是RedHat发行RedHat企业版linux的一个 实验版本,以用户做测试,为RedHat企业版发布奠定基础。 3.RedHatEnterpriseLinux RedHatEnterpriseLinux(缩写为RHEL,RedHat的企业版)。RedHat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持, 因此版本更新相对较缓慢。

如何在Linux下安装和卸载软件

如何在Linux下安装和卸载软件 labrat2011-08-25 16:34:57 Linux软件安装常用方法第一篇 1、软件安装卸载,分几种情况: A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装。 ==如何卸载: 1、打开一个SHELL终端 2、因为LINUX下的软件名都包括版本号,所以卸载前最好先确定这个软件的完整名称。 查找RPM包软件:rpm -qa ×××* 注意:×××指软件名称开头的几个字母,不要求写全,但别错,*就是通配符号“*”,即星号,如你想查找机子里安装的REALPLAYER软件,可以输入:rpm -qa realplay* 3、找到软件后,显示出来的是软件完整名称,如firefox-1.0.1-1.3.2 执行卸载命令:rpm -e firefox-1.0.1-1.3.2 ===安装目录,执行命令查找:rpm -ql firefox-1.0.1-1.3.2 ===参考文章:https://www.doczj.com/doc/1812228625.html,/article.p...178&blogId=1438 B:tar.gz(bz或bz2等)结尾的源代码包,这种软件包里面都是源程序,没有编译过,需要编译后才能安装,安装方法为: 1、打开一个SHELL,即终端 2、用CD 命令进入源代码压缩包所在的目录 3、根据压缩包类型解压缩文件(*代表压缩包名称) tar -zxvf ****.tar.gz tar -jxvf ****.tar.bz(或bz2) 4、用CD命令进入解压缩后的目录 5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去) 6、然后是命令:make 7、再是安装文件命令:make install 8、安装完毕 ===如何卸载: 1、打开一个SHELL,即终端 2、用CD 命令进入编译后的软件目录,即安装时的目录 3、执行反安装命令:make uninstall ====安装目录:注意make install命令过程中的安装目录,或者阅读安装目录里面的readme 文件,当然最好的办法是在安装的过程中指定安装目录,即在./configure命令后面加参数 --prefix=/**, 如:./configure --prefix=/usr/local/aaaa,即把软件装在/usr/local/路径的aaaa这个目录里。一般的软件的默认安装目录在/usr/local或者/opt里,可以到那里去找找

在linux下如何编译C++程序

在linux下如何编译C++程序 一、GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活。它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada g++是GCC中的一个工具,专门来编译C++语言的。 GCC的参数有:( 也是分步实现) -E 让GCC在预处理结束后停止编译g++ -E hello.cpp -o hello.i -c 将hello.i编译成目标代码g++ -c hello.i -o hello.o 将目标文件连接成可执行文件g++ hell.o -o hello 可以一步实现g++ hello.cpp -o hello 二、假如有两个以上源文件应该一下编译。 一步就实现g++ foo1.cpp foo2.cpp -o foo 也可以分步实现g++ -c foo1.cpp -o foo1.o g++ -c foo2.cpp -o foo2.o g++ foo1.o foo2.o -o foo 三、GCC一些常用选项 1、产生警告信息的选项大多数以-W开头其中有-Wall g++ -Wall hello.cpp -o hello 2、将所有的警告当成错误的选项-Werror g++ -Werror hello.cpp -o hello 3、寻找头文件选项-I (linux默认路径:头文件在/usr/include/下),不在这个路径下就要用-I指定。 gcc foo.cpp -I/home/include -o foo 4、库依赖选项-L (linux默认路径:库文件在/usr/lib/下),不在这个路径下就要用-L指定。 g++ foo.cpp -L/home/lib -lfoo -o foo 库就是将源文件编译之后生成的目标文件的集合。 库命名以lib开头。 库有静态库(通常以.a结尾)和动态库(通常以.so结尾) 默认情况下,g++以动态库形式连接。如果要静态库连接则要用-static指定(g++ foo.cpp -L/home/lib -static -lfoo -o foo) 5、优化选项-On (n取0到3之间) 四、介绍一些GNU 二进制链工具 1、ar命令(也称为工具)可以用来编译成静态库 ar [-] {操作选项} {任选项} [成员名] [count] archive files.... ar r v libtest.a hello.o hello1.o 生成一个库名为test,该库中存放了hello.o和hello1.o这两个模块。 操作项:d (删除)、m(移动)、p(标准输出)、q(快速追加)、r(在库中插入模块)、t(显示库的模块清单)、x(从库中提取一个成员)。 任选项:a(成员后面添加一个新文件)、b(成员前面添加一个新文件)、c(创建一个库)、f(截短指定名字)、v(显示执行操作选项的附加信息)。澳门新濠天地https://www.doczj.com/doc/1812228625.html, 2、编译成动态库

Linux find命令常见用法汇总

Linux find命令常见用法汇总 导读:Linux系统中查找文件的命令式find,find命令具有强大的功能,能够提供多种查找条件,下面小编就给大家带来Linux中find命令的常见用法汇总,一起来学习下吧。 ·find path -option [-print ][-exec -ok command ]{} \; find命令的参数; pathname:find命令所查找的目录路径。例如用。来表示当前目录,用/来表示系统根目录。 -print:find命令将匹配的文件输出到标准输出。 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command’ { } \;,注意{ }和\;之间的空格。 -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 #-print 将查找到的文件输出到标准输出 #-exec command {} \; —–将查到的文件执行command操作,{} 和\;之间有空格 #-ok 和-exec相同,只不过在操作前要询用户 例:find 。-name .svn | xargs rm -rf ==================================================== -name filename #查找名为filename的文件 -perm #按执行权限来查找 -user username #按文件属主来查找

-group groupname #按组来查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n #按文件访问时间来查GIN:0px“》 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c]#查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c]#查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中 -prune #忽略某个目录 ===================================================== $find ~ -name ”*.txt“ -print #在$HOME中查.txt文件并显示 $find 。-name ”*.txt“ -print $find 。-name ”[A-Z]*“ -print #查以大写字母开头的文件 $find /etc -name ”host*“ -print #查以host开头的文件 $find 。-name ”[a-z][a-z][0–9][0–9].txt“ -print #查以两个小写字母和两个数字开头的txt文件 $find 。-perm 755 -print $find 。-perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777 $find 。-type d -print $find 。!-type d -print $find 。-type l -print $find 。-size +1000000c -print #查长度大于1Mb的文件

如何合理地给你的Linux分区

如何合理地给你的Linux系统分区本文介绍Linxu常用分区挂载点常识以及桌面、服务器分区的推荐配置,当然这个配置是笔者从许多文摘中整理出来的,分区大小这个话题是仁者见仁智者见智,欢迎大家一起交流这个话题,比如WEB服务、邮件服务、下载服务等。 分区是什么? 分区就是硬盘格式化过程中的空间划分。当然是逻辑意义上的划分,不是真的叫你把硬盘拔出来用刀子划分。硬盘分区后就有各种用途了。把分区想象成两个不同的配置过程。分区很方便因为它起到了一种“沙盘式”的作用。(笔者:沙盘,差不多就算虚拟的概念吧,真实的操作不受影响)如果你有个1TB的硬盘,分成两个区,一个250GB,一个750GB,这样你在这个分区的操作不会影响到另一个分区,反之亦然。你可以把这个分区在网上共享,而不必担心另一个分区也会被共享出去。一个分区可以装上让木马、病毒肆虐的Windows系统,另一个可以装上过时的打满安全补丁的Linux系统。二者不会相互影响,除非你把两个分区都搞坏了,或者你的硬盘真的报废了。 另一个分区的好处是,你的分区可以有各种各样的不同文件系统。文件系统就算把硬盘格式化成系统可以读写操作的一种“表”结构。你只有一个硬盘?没问题啊。你还是可以在一个硬盘上安装不同的系统。省的再买个硬盘了。 虽然文件系统很多种,但分区类型只有三种:主分区,扩展分区,逻辑分区,其中逻辑分区是在扩展分区中的。一个硬盘只能有最多四个主分区,这是因为主引导记录的限制。这个只跟硬盘有关,跟操作系统是什么没有关系。主引导记录告诉机器从哪里启动系统,所以一般来说主分区是安装系统的。但如果你想要多个分区怎么办?这就是扩展分区的用途了。扩展分区就是其他逻辑分区的容器。你可以在里面放任意多的逻辑分区。(笔者:说是无限多个,其实还是有限的,至少不能超过你硬盘的大小,而且据我所知是125个,2的7次方?)既然扩展分区这么给力,那干嘛不用扩展分区呢?因为你不能从扩展分区启动系统。当然现在牛人很多,是有法子的。但最好的方法就在事先就准备用主分区装系统。而且分区如何标识也是跟分区的类型有关的。先是主分区而后再标识逻辑分区。这样的话,如果你在系统间切换就会引起盘符错乱的问题,以后添加或是删除分区也会出现这个问题。 Linux中的挂载点 Windows系统下的分区很明了,一个分区就是一个盘符。如果有可以兼容的文件系统,系统也可以读写那个分区。如果是不兼容的文件系统,Windows就忽略这个分区或者提示你格式化。Linux所有类似Unix却不是这样。 Linux就是把所有的一切都放到一颗“树”下。如果你有另外的分区或者硬盘,它们就会被“挂载”到枝干的子目录中,像是/media或/mnt。这个子目录就是所谓的挂载点了。这个方法跟Linux的“树”概念更好地融合在一起。你可以把分区挂载到任意的子目录中。Windows就不是这么简单了,一个新的分区就是另外的一个盘。而且

15个极好的Linux find命令示例

前阵子,我们审查了15件实事find命令的例子(第一部分)。查找命令可以做很多比只是在寻找基于名称的文件(第2部分)在这篇文章中,让我们来讨论15高级find命令的例子,包括-根据它访问,修改或改变的时间查找文件,查找文件相比之下,执行操作找到的文件等。 基于访问/修改/更改时间查找文件 你可以找到基于以下三个文件的时间属性的文件。 1.访问时间的文件。文件访问时,访问时间得到更新。 2.的文件的修改时间。文件内容修改时,修改时间得到更新。 3.更改文件的时间。更改时间时,被更新的inode数据的变化。 在下面的例子中,min选项之间的差异和时间选项是参数。 ?分论点将它的参数为分钟。例如,60分钟(1小时)= 60分钟。 ?时间参数,将它的参数为24小时。例如,时间2 = 2 * 24小时(2天)。 ?虽然这样做的24个小时计算,小数部分都将被忽略,所以25小时为24小时,和47小时取为24小时,仅48小时为48小时。要获得更清晰的参考atime的部分find 命令的手册页。 例1:找到在1个小时内被更改的文件 想要通过文件修改时间找出文件,可以使用参数-mmin -mtime。下面是man手册中有关mmin和mtime的定义。 ?-mmin n文件最后一次修改是在n分钟之内 ?-mtime n文件最后一次修改是在n*24小时之内(译者注:也就是n天了呗)执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次修改时间在1个小时(60分钟)之内的文件或目录 1 # find . -mmin -60

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内修改了的文件(文件系统根目录/ 下) 1 # find / -mtime -1 例2:找到1个小时内被访问过的文件 想要通过文件访问时间找出文件,可以使用参数-amin -atime。下面是man手册中有关amin和atime的定义。 ?-amin n文件最后一次访问是在n分钟之内 ?-atime n文件最后一次访问是在n*24小时之内 执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次访问时间在1个小时(60分钟)之内的文件或目录 1 # find . -amin -60 同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录/ 下) 1 # find / -atime -1 例3:查找一个小时内状态被改变的文件 (译者注:这里的改变更第1个例子的更改文件内容时间是不同概念,这里是更改的是文件inode的数据,比如文件的权限,所属人等等信息) 要查找文件的inode的更改时间,使用-cmin和-ctime选项 ?-cmin n文件的状态在n分钟内被改变 ?-ctime n文件状态在n*24小时内(也就是n天内)被改变 (译者注:如果上面的n为-n形式,则表示n分钟/天之内,n为+n则表示n分钟/天之前) 下面的例子在当前目录和其子目录下面查找一个小时内文件状态改变的文件(也就是60分钟内): 1 # find . -cmin -60 同样的道理,下面的例子在根目录/及其子目录下一天内(24小时内)文件状态被改变的文件列表: 1 # find / -ctime -1 例4:搜索仅仅限定于文件,不显示文件夹

linux下如何使用U盘

linux下如何使用U盘? 昨天花了整整一天才把linux搞定,今天兴致勃勃地要把U盘上的文件拷贝过去。因为听同事说可以像在windows下那样直接双击使用U盘,于是照做了,哪曾想等了半天愣是没反应,最后还是提示错误,看来情报有误啊,没办法,再继续探讨一番吧。 上网查了一下,很多,就是通过两个命令,比较简单,不过对于初学者来说如何正确输入这两个命令或许也需要费一番周折吧(偶不知道别的初学者是不是,总之我当时没有搞明白,也试了N多次以后才领会了,大概偶比较笨吧嘿嘿)。命令如下: mount -t vfat -o iocharset=utf8,umask=000 /dev/sda1 /mnt/usb 如果你真要直接输入上述命令的话恐怕永远都不能成功了。命令的作用就是把U盘mount 到linux文件系统中去,以便在linux下对U盘进行读写等文件操作。其中【/dev/sda1】表示U盘设备,【/mnt/usb】表示你要挂载U盘的linux系统目录,这个目录必须是事先建立的哦,是不是必须建在mnt目录下我不知道,不过网上的介绍好像都是的。如果你的系统里没有这个目录,那么请先执行以下命令: mkdir /mnt/usb 建立了这个目录后再执行上面那条命令。 在上面的第一条命令中还要注意,表示U盘设备的参数并不总是【/dev/sda1】,不同的系统是不同的。如果你不能正确地输入你的系统中U盘的设备代表符,那么上述命令将不能执行成功。那么怎么样才能得到表示U盘的正确参数呢?很简单,用fdisk命令。 linux下的fdisk命令不同于dos下的fdisk命令,dos下的功能相信大家都知道了呵呵,而linux 下的fdisk命令的功能则是获得整个计算机的所有磁盘信息并显示出来。在终端输入以下命令: fdisk -l 你就会立刻得到你的磁盘信息,硬盘一般都是以hdx的形式表示的(x的值可能为0,1,2,3,……),U盘则一般都是以sdxx的形式表示的(第一个x的值可能为a,b……,第二个x的值可能为1,2……)【我做了多次实验,只得到了a和b、1这几个值】,其他的可能值是我自己推测的,可能不对哦,具体的情况请大家根据fdisk的结果来确定吧,切记不可生搬硬套! 下面给出我的具体步骤。 (1)插入U盘。 (2)输入命令

FIND命令大全

Linux Find命令精通指南 作者:Sheryl Calish 简单介绍这一无处不在的命令的强大的方面以及混乱的方面。 2008年7月发布 Linux find命令是所有Linux命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他Linux命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用find命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行操作。 本文的目的是,通过概述find命令的用途和潜能,简化该命令的学习和使用。同时,它将针对find命令的某些最强大但最混乱的方面提供一个基本的指南和参考。 [注意:本文使用的find版本是GNU版本,因此,某些细节可能与其他版本的find有所不同。] 基本格式 开始之前,我们先来看一下find命令的基本结构: find start_directory test options criteria_to_match action_to_perform_on_results 在以下命令中,find将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件:find.-name"*.java" 下面是该命令所找到的命令的缩略清单: find.-name"*.java" ./REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java ./REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java .. [注意:如果您从本文剪切并粘贴来运行该find命令,您可能需要使用自己的键盘替换双引号(“”)才能得出正确的结果。] 以下命令将执行相同的操作。在这两种情况下,您都需要对通配符进行转义以确保它传递到find命令并且不由shell解释。因此,请将您的搜索字符串放到引号里,或者在它前面加上反斜线:

linux查找文件命令find

linux查找文件命令find 每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。 可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB 格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux 书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。 通过文件名查找法: 这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf 这个命令语法看起来很容易就明白了,就是直接在find后面写上-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机

Linux系统下如何设置IP地址

Linux系统下如何设置IP地址?我们可以通过命令设定IP的方法,不过此方法的前提条件是用户需root权限。在Linux系统的/etc/sysconfig/network-script/ifcfg-eth0文件中存放着网卡IP地址配置的相关信息,它的具体格式为: [root@localhost network-scripts]# cat ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=IP地址 USERCTL=no PEERDNS=yes GATEWAY=网关地址(路由器的IP地址) 下面我们来举个例子如何实现Linux环境下设置IP地址。 #ifconfig eth0 192.168.0.1或者修改/etc/sysconfig/network-scripts/下的ifcfg-eth0 #vi /etc/syssconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR= ;这里是你网卡的物理地址,通常检测到的网卡你就不用输入了 ONBOOT=yes IPADDR=192.168.0.1 NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255

GATEWAY= ;这里输入你的网关,路由器的IP地址 保存退出 #/sbin/service network restart 如果网卡启动是OK的话就说明IP地址设定成功了。另外我们可以用ifconfig eth0来显示当前的IP来确认是否设置正确。 利用以下命令: /etc/init.d/network reload 命令或service network [命令] 重新导入该文件,实现网络启动 ifconfig eth0 192.168.1.10 netmask 255.255.255.0 //配置IP地址 ifconfig eth0 up | down //激活,关闭设备eth0 route add default gw 192.168.1.1 //配置默认网关 暂时配置dns解析 echo "nameserver 211.98.1.28">> /etc/resolv.conf Linux系统下如何设置IP地址?我们可 以通过命令设定IP的方法,不过此方法的前提条件是用户需root权限。在linux系统的/etc/sysconfig/network-script/ifcfg-eth0文件中存放着网卡IP地址配置的相关信息,它的具体格式为: [root@localhost network-scripts]# cat ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet

如何熟悉linux操作系统

千锋教育https://www.doczj.com/doc/1812228625.html, 精品课程 全程面授 千锋教育-中国IT 职业教育领先品牌 linux 培训学院哪家好 Linux 是常常用来形容整个基于Linux 内核,并且使用工程各种工具和数据库的操作系统。 很受欢迎,使用非常广泛。到了云时代,Linux 炙手可热,掌握。 知识和技能,能找到非常有前景的工作。 既然要学习,最重要的是找到一家好的培训机构。师资,费用,教学质量,这些都要考虑。 2017年5月26日上午,“千锋Linux 云计算运维及开发课程2017版”新品发布会在千锋互联科技有限公司总部北京隆重举行 届时,千锋教育总部的各位领导、千锋教育分校区的校长及网络咨询部、网络运营部代表等各界人士一起出席了“千锋Linux 云计算运维及开发课程2017版”新品发布会。 千锋Linux 云计算课程总监(中国第29位红帽认证架构师,以下简称:杨老师)向各位出席此次发布会的代表详细介绍了“千锋Linux 云计算运维及开发课程2017版”的课程设置体系内容及本年度首期开班招生计划要求。 职业教育领先品牌 千锋教育 linux 培训学院哪家好 ?千锋Linux 云计算培训课程,全方位培养运维工程师 Linux 与微软的“战争”持续已久,谁也不能抢占各自的用户。不过,全球200万名Linux 工程师终于等到了这一天,是时候对微软说“不”了,因为“云计算”时代即将来临,以及廉价的、超小型笔记本电脑正在快速普及。Linux 工程师等待已久了的“云计算”时代。 日前,百资信息科技公司创办人及执行人林政道和香港Linux 商会会长简锦源在广州信息产业周上指出,由于手机、超小型笔记本等移动互联网终端的出现,这种移动终端设备采用Linux 平台作为操作系统已经成为IT 业界的一种发展趋势。因为中国是全球的PC 制造基地和最大的消费市场,其已成为全球推动Linux 发展的最重要的力量之一。 在云计算的初级阶段,我们一定要把握先机,好好学习云计算的相关知识。为此,千锋推出Linux 云计算培训。千锋Linux 云计算培训课程实行免费试学两周,不花一分钱,满意后再报名的政策,全心全意为学员提供服务。讲师方面,千锋Linux 讲师均是拥有多年经验的老师,并特聘一线名企作为技术顾问;课程体系方面,千锋Linux 课程体系是最贴合企业需求的面授课程,并有名企技术顾问定期进行调整;学员福利方面,千锋Linux 为首期报名学员减免1000元学费,并赠送5个月阿里云ECS 云主机。2017年7月17日,千锋Linux 云计算培训等你来战

linux下find命令详解

linux下find命令详解 find命令是一个无处不在命令,是linux中最有用的命令之一。find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。 一、find命令的一般形式 find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定路径下的所有文件 处理动作:默认为显示 path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录 expression:expression可以分为——“-options [-print -exec -ok ...]” -options:指定find命令的常用选项 -print:find命令将匹配的文件输出到标准输出,默认,可省略 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格 1、find ./ -size 0 -exec rm {} \;

删除文件大小为零的文件 rm -i `find ./ -size 0` 或 find ./ -size 0 | xargs rm -f & 为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中: 2、find . -type f -exec ls -l { } \; 在/logs目录中查找更改时间在5日以前的文件并删除它 们: find /logs -type f -mtime +5 -exec rm { } \; -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 find . -name "*.conf" -mtime +5 -ok rm { } \; 在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示 二、find命令的常用选项及实例 -a :组合条件“和” -not:组合条件“非” 非A并且非B:非(A或B) 非A或非B:非(A并B)

linux下如何安装QQ

一直有新手在问这个问题,今天介绍几种常见的方法其实很简单。下载保存起来分享给别人吧。 下载QQ客户端安装包 从腾讯官方主页下载安装包,Ubuntu选择DEB格式,Fedora选择RPM包,下载地址为https://www.doczj.com/doc/1812228625.html,/qq/linux/download.shtml 单击“免费下载”按钮即可选择相应安装包。

直接单击对应版本“下载”按钮便可以开始下载。 单击“保存文件”按钮即可开始下载了。

下载后选择Ubuntu主菜单“位置-下载”选项,可以看到这个文件夹下有一个DEB格式文件,双击开始安装安装,这时会弹出“您需要授予管理权限才能安装软件”的对话框,输入当前用户密码,临时获得管理员权限,单击“确定”按钮。 在临时获得了管理员权限后,就可以开始安装了。Linux中,无聊那个版本,只有管理员才有权限执行安装、配置之类的操作,所以许多Linux版本为了系统安全,尽量减少使用管理员密码的次数,引入了sudo机制,所谓sudo机制,就是临时将管理员权限授予一个普通用户,普通用户输入自己的密码后,默认是给这个sudo后的用户五分钟的管理员权限,这对

于安装操作来说是足够了,这样既可以完成需要管理员权限的操作,又减少了使用管理员密码的次数,从而提高了系统的安全性。 稍等片刻,Linux QQ就安装好了,需要注意的是,和Windows安装软件不同,安装好的QQ不会放在一个目录中,而是分散到系统的各个文件夹中,可以选择“软件包安装”中的“包含的文件”标签页来查看安装程序将文件复制到哪里。 安装后,选择Ubuntu主菜单“应用程序-Internet”选项,既可以看到QQ熟悉的身影。

Linux中find常见用法

Linux中find常见用法 ·find path -option [ -print ] [ -e xec -ok command ] {} \; #-print 将查找到的文件输出到标准输出 #-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格 #-ok 和-exec相同,只不过在操作前要询用户 ==================================================== -name filename #查找名为filename的文件 -perm #按执行权限来查找 -user username #按文件属主来查找 -group groupname #按组来查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查GIN: 0px"> -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -nogroup #查无有效属组的文件,即文件的属组在 /etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在 /etc/passwd中不存 -newer f1 !f2 找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -nogroup #查无有效属组的文件,即文件的属组在 /etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在 /etc/passwd中不存 -newer f1 !f2 #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] #查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

LINUX下多路径(详细)

LINUX下多路径(multi-path)介绍及使用2013-05-16 11:15:34|分类:openfiler系统+fr|举报|字号订阅 一、什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。 多路径的主要功能就是和存储设备一起配合实现如下功能: 1.故障的切换和恢复 2.IO流量的负载均衡 3.磁盘的虚拟化 由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在,RedHat和Suse的2.6的核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。 二、Linux下multipath介绍,需要以下工具包: 在CentOS 5中,最小安装系统时multipath已经被安装,查看multipath是否安装如下:

Linux中Find命令的高级运用

Linux系统Find命令的三个高级应用 Find命令是Linux操作系统中一个很强大的工具。这个命令除了可以用来定位文件外,还有其他许多很实用的用途。如可以用来备份文件、交互式删除文件、列举文件清单等等。只要灵活应用这些功能的话,那么对于系统工程师的日常工作就能够起到事半功倍的效果。 一、利用Find命令对文件进行备份 如在Linux操作系统中有一个用户为oracle。系统会在Home目录下自动为这个用户创建一个子目录Oracle。现在用户希望能够对自己目录下的文件进行自动备份,以防止文件的以外丢失。如下图所示,现在系统工程师准备把用户目录下面的文件备份到backup目录下面,并把文件名字重命名为backup。这个功能可以实现呢?答案当然是肯定的。可以利用find命令结合cp命令来实现这个功能。 1、文件的最后修改时间。 在Linux系统的文件属性中,有非常重要的三个时间截,分别为文件最后修改时间、文件最后访问时间、inode节点最后修改时间。一旦用户对某个文件执行了更改操作,则文件i node节点里的最后修改时间就会被更新了。需要注意的是,在Linux操作系统中目录也被当作文件的一种,为此对目录的修改,如创建一个目录或者更改目录的名字也会被当作文件的修改来对待。另外文件修改后,只会更改文件的修改时间,而不会影响到目录的最后修改时间。所以如果一个目录下有一个文件更改了,则在备份的时候只需要备份这个更改的文件即可,而不需要备份这个目录下其他没有更改的文件。 出于备份效率的考虑,在备份的时候只备份当天修改过的文件。为此在备份时首先要做的就是找到这些最近更改过的文件。这个解决的思路就是从这个文件的最后修改时间入手。在f ind命令中有一个参数为mtime,它表示修改时间少于x天。如果我们把这个参数设置为1,那么find命令就可以找出在最近一天内修改过的文件。为此只需要对这些找到的文件进行备份即可。

相关主题
文本预览
相关文档 最新文档