• RAID 0又称为Stripe或Striping,中文译为集带工作方式,有时也可以理解为“拼凑”
• 它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量
• 硬盘数量:最少 2 个
A和B分别为两块硬盘,C为实行了Raid0之后的硬盘
A和B都为读写速度为300M的1T的硬盘,C为实行了Raid0以后的硬盘。它的读写速度可以达到600M,容量为2T。但缺点是一旦A或B损坏,C里所有数据丢失
因为在计算机看来它是一整块硬盘,在写的时候也是按照随机把数据写入A,B的。比如一个数据123456,把135写入了A,246写入了B,如果A坏了,B里的数据也没了意义
• 又称为Mirror或Mirroring,中文译为镜像方式
• 这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断
• 由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高
• 硬盘数量:最少 2 个
A和B分别为两块硬盘,C为实行了Raid1之后的硬盘
A和B都为读写速度为300M的1T的硬盘,也就是A里面写什么B里面就写什么。B为A的备份。
读写速度为300M,容量为1T
• 先做Raid1,再做Raid0
• 硬盘数量:最少 4个
A,B,C,D分别为四块硬盘,E为实行了Raid10之后的硬盘
ABCD都为读写速度为300M的1T的硬盘,Raid10为AB和CD为实行了Raid1以后实行Raid0以后的硬盘。这样读写速度为600M,容量为2T
• Raid5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术
• 各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验 (异或运算),校验数据平均分布在每块硬盘上
• 以n块硬盘构建的RAID 5阵列可以有2/3块硬盘的容量,存储空间利用率非常高
• RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来
• 硬盘数量:最少 3个
一共3T的硬盘,最后的容量可能会达到2T~2.6T左右。不怕硬盘坏一块,坏一块还能通过校验和推算出来数据。但坏两块及两块以上数据就没有了意义
• 先做Raid5,再做Raid0
• 硬盘数量:最少 6个
• 一般的中高档服务器多使用硬件RAID控制器来实现Hardware RAID,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视
• SoftWare Raid即软件磁盘阵列,软件RAID使您可以将两个或多个块设备(通常是磁盘区)组合为单个 RAID 设备(/dev/mdX)
• 例如:假定有三个空分区:hda3、hdb3 和 hdc3。使用软件 RAID管理工具mdadm就能将这些分区组合起来
mdadm工具是一个管理软件RAID的独立程序,它能完成所有的软RAID管理功能
mdadm常用选项
• -A <阵列设备名>, --assemble:加入一个以前定义的阵列
• -C <阵列设备名>, --create:创建一个新的阵列
• -D <阵列设备名>, --detail:显示 md device 的详细信息
• -a yes :自动创建md阵列文件
• -l, --level=:设定 raid level
• -s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息
• -n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改
-x, --spare-devices=:指定初始阵列的富余device 数目
在我们日常管理与维护服务器个过程中,我们都需要使用远程连接工具,今天我们就一同来总结下Linux常用的安全远程连接工具-OpenSSH。【远程登录协议】
1、telnet:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主
机工作的能力。默认使用的是TCP的23号端口,采用C/S架构,在用户登录的过程中传输的信息都是明文信息,安全无法保障,所以不建议用telnet。
2、ssh:为Secure Shell 的缩写,由IETF的网络工作小组所制定;SSH
为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH
协议可以有效防止远程管理过程中的信息泄露问题。默认使用的是TCP的22号端口,也是基于C/S架构,SSH有两个版本v1与v2。
sshv1:基于CRC-32做MAC(消息摘要认证),不安全,强烈建议不使用;
sshv2:基于双方主机的协商选择使用最安全的MAC方式 ,其有如下特点:1、加密机制及MAC机制由双方协商选定;2、基于DH实现密钥交换,基于RSA或DSA实现身份认证;3、客户端通过检查服务器端的主机密钥来判断是否能够继续通信;
【OpenSSH简述】
OpenSSH 是一组用于安全地访问远程计算机的连接工具。它可以作为rlogin、rsh
rcp以及telnet的直接替代品使用。更进一步,其他任何TCP/IP连接都可以通过SSH安全地进行隧道/转发。OpenSSH
对所有的传输进行加密,从而有效地阻止了窃听、连接劫持,以及其他网络级的攻击。OpenSSH 由 OpenBSD project 维护。
登录过程和使用rlogin或telnet建立的会话非常类似。在连接时,SSH
会利用一个密钥指纹系统来验证服务器的真实性。只有在第一次连接时,用户会被要求输入yes进行确认,之后的连接将会验证预先保存下来的密钥指纹。如果保
存的指纹与登录时接收到的不符, 则将会给出警告。 指纹保存在 ~/.ssh/known_hosts中,对于SSHv2指纹,则是
~/.ssh/known_hosts2。
默认情况下,较新版本的OpenSSH只接受SSHv2连接。如果能用版本2则客户程序会自动使用,否则它会返回使用版本1的模式。此外,也可以通
过命令行参数-1或-2来相应地强制使用版本1或2。 保持客户端的版本1能力是为了考虑较早版本的兼容性,建议尽量使用版本2。
【SSH服务器和客户端工作流程】
OpenSSH使用C/S架构:
服务端工具(S):sshd
客户端工具(C):ssh命令、putty、xshell、securecrt、sshshellclient;
【OpenSSH客户端组件-ssh】
配置文本:/etc/ssh/ssh_config
使用方法:
ssh [username@] host [COMMAND]或 ssh -l username host [COMMAND]
-p PORT:指定远程服务器端口;
-l username:指定登录远程主机的用户,不指定则使用当前用户;
username@:等同于 -l username
如果设置了COMMAND,表示使用username账户登录远程主机执行一次指定的命令并返回结果,不会停留在远程主机上;
[root@www ~]# ssh 192.168.0.110 #使用root用户登录;
The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.
RSA key fingerprint is 01:2e:43:cc:bc:1d:f1:e5:f0:f4:89:78:74:a9:49:44.
Are you sure you want to continue connecting (yes/no)? yes #第一次连接,需手动进行确认;
Warning: Permanently added '192.168.0.110' (RSA) to the list of known hosts.
root@192.168.0.110's password: #输入远程主机root账户的密码;
Last login: Mon May 11 16:44:52 2015 from 192.168.0.104
[root@mailCentOS6 ~]# #登录成功了,远程主机名为mailCentOS6;
[root@mailCentOS6 ~]# ls #显示远程主机root家目录下的文件;
2.sh boot.iso install.log sdb.mbr test1
anaconda-ks.cfg crontab install.log.syslog \temp\test
[root@mailCentOS6 ~]# exit #退出登录;
logout
Connection to 192.168.0.110 closed.
[root@www ~]# ssh root@192.168.0.110 ls #使用root登录远程主机,执行一次ls命令,返回结果便退出;
root@192.168.0.110's password: #第二次连接,就不需要输入yes了,直接输入密码即可;
2.sh
anaconda-ks.cfg
boot.iso
crontab
install.log
install.log.syslog
sdb.mbr
\temp\test
test1
[root@www ~]# #看到了吗,我们当前并没有登录在远程主机;
【OpenSSH服务器端组件-sshd】
配置文件:/etc/ssh/sshd_config(通过修改此文件可以修改ssh的默认监听端口与其他参数)
服务脚本:/etc/rc.d/init.d/sshd
服务启动|停止|重启:serveice sshd start|stop|restart
脚本配置文件:/etc/sysconfig/sshd
配置参数
# man sshd_config 查看配置参数的说明;
# vim /etc/sysconfig/sshd 通过编辑配置文件来修改配置参数;
#+空格+文字:以此格式开头的行表示改行为注释说明;
#+文字:以此格式开头的行表示可启用选项,不改变则表示使用该选项的默认设置,反之使用设定值“#”要去掉哦!
例:#Port 22 如不去掉#且22不变,表示使用默认的22号端口;
若把#Port 22改成port 7777,表示把sshd的监听端口改成7777;
注意:修改参数与配置后,必须重启服务(service sshd restart).
经常需要修改的参数:
[root@www ~]# cat /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22 #修改默认监听的端口;
port 7777 #把sshd的监听端口改成7777;
#AddressFamily any #监听的地址家族,指定是监听在IPV4上还是IPV6上,any表示所有;
#ListenAddress 0.0.0.0 #指定监听的地址 (0.0.0.0表示本机的所有地址);
#ListenAddress ::
# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key #使用shhv1用到的主机密钥;
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024 #密钥长度;
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m #登录宽限期;
#PermitRootLogin yes #是否允许管理员直接登录;
#StrictModes yes
#MaxAuthTries 6 #最大密码输入错误次数;
#MaxSessions 10 #最大会话个数;
#RSAAuthentication yes #是否允许使用RSA机制来认证;
#PubkeyAuthentication yes
#--------中间不长改变的配置参数略----------
Subsystem sftp /usr/libexec/openssh/sftp-server #表示是否启动sftp功能;
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
sshd认证方式:
1、基于口令的认证;
2、基于密钥的认证;
# ssh-keygen -t rsa 用rsa算法生成密钥,默认密钥为id_rsa(私钥), id_rsa.pub(公钥)
# ssh-keygen -f /path/to/somefile -P oldpassword 根据现有的密钥文件生成密钥
-f /path/to/somefile: 密钥文件保存在的位置;
-P '': 指定生成旧密钥时使用的密码;
方法一:把本地主机生成的公钥 id_rsa.pub使用scp复制到远程主机的上,在远程主机使用cat id_rsa.pub>>.ssh/authorized_keys追加该公钥信息,这样就可以实现基于密钥认证的ssh登录;
方法二:# ssh-copy-id -i .ssh/id_rsa.pub USERNAME@HOST
[root@www ~]# ssh-keygen -t rsa #用rsa算法生成密钥;
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #指定密钥存放路径及名称,一般不用
#修改,直接回车;
Enter passphrase (empty for no passphrase): #输入私钥密码;
Enter same passphrase again: #确认输入私钥密码;
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c2:f9:c2:3d:4d:ca:52:39:7a:a7:33:de:42:11:d3:8f root@www.99.com
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o . |
| o o |
| . ...E . |
| + S.. |
| . B.= |
| =.B o |
| ++= |
| .o+. |
+-----------------+
[root@www ~]# ssh-keygen -f .ssh/id_rsa -P '' #根据现有密钥文件重新生成密钥;
Generating public/private rsa key pair.
.ssh/id_rsa already exists.
Overwrite (y/n)? y #提示是否确定要覆盖;
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
bf:55:f0:0b:a5:ee:4e:4a:1d:d3:b1:0e:66:ee:55:9b root@www.99.com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . o |
| * o |
| S O = .|
| . * B oo|
| o * +E |
| . B . |
| o.+ |
+-----------------+
#-----使用方法一:实现通过密钥文件完成身份验证(不需要输入密码)-----
[root@www ~]# scp .ssh/id_rsa.pub root@192.168.0.110:/root/ #使用spc命令复制公钥文件到远程
#主机的用户家目录下的.ss/路径下;
root@192.168.0.110's password: #输入登录远程主机的密码;
id_rsa.pub 100% 397 0.4KB/s 00:00 #提示复制成功;
[root@mailCentOS6 ~]# ls .ssh/ #验证确认文件复制成功;
id_rsa.pub known_hosts
[root@mailCentOS6 ~]# touch .ssh/authorized_keys #路径内没有自动验证密钥文件,创建一个;
[root@mailCentOS6 ~]# cat .ssh/id_rsa.pub >>.ssh/authorized_keys #把公钥追加到自动验证密钥文件;
[root@www ~]# ssh 192.168.0.110
Last login: Mon May 11 20:45:10 2015 from 192.168.0.111
[root@mailCentOS6 ~]# #OK了,看到了没有,不用输入密码我们就直接可以远程登录了!!
#-----使用方法二:实现通过密钥文件完成身份验证(不需要输入密码)-----
[root@mailCentOS6 ~]# rm -f .ssh/authorized_keys #删除原有保存的自动验证密钥文件;
[root@www ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.110 #使用命令自动传输生成自动验证密钥文件;
root@192.168.0.110's password:
Now try logging into the machine, with "ssh 'root@192.168.0.110'", and check in:
.ssh/authorized_keys #提示生成的文件;
to make sure we haven't added extra keys that you weren't expecting.
[root@www ~]# ssh 192.168.0.110 #验证看看是否可以登录;
Last login: Mon May 11 21:02:29 2015 from 192.168.0.111
[root@mailCentOS6 ~]# ls .ssh/ #看到了没有,我们现在已经登录到了mailCentOS6这台主机上了;
authorized_keys known_hosts
【命令补充】
scp: 利用ssh协议在主机之间实现安全文件传输的工具
scp SRC1... DEST
分两种情形:
1、源文件在本机,目标为远程主机
# scp /path/to/somefile... USERNAME@HOST:/path/to/somewhere
源可以是目录或文件有多个,目标必须是目录
2、源文件在远程,本地为目标
# scp USERNAME@HOST:/path/to/somewhere /path/to/somewhere
-r: 复制目录时使用(实现递归复制),scp默认不能复制目录;
-p: 保持源文件的元数据信息,包括mode和timestamp
-q: 静默模式,复制过程不显示状态信息;
-p PORT: 指定ssh协议监听的端口(远程主机)。
Linux中常见的磁盘管理工具有哪些在Linux系统安装时,其中有一个步骤是进行磁盘分区。在分区时可以采用Disk Druid、RAID和LVM等方式进行分区。除此之外,在Linux系统中还有fdisk、cfdisk、parted等分区工具。,将介绍几种常见的磁盘管理工具。
1.fdisk
fdisk磁盘分区工具在DOS、Windows和Linux中都有相应的应用程序。在Linux系统中,fdisk是基于菜单的命令。用fdisk对硬盘进行分区,可以在fdisk命令后面直接加上要分区的硬盘作为参数,例如,对第二块SCSI硬盘进行分区的 *** 作如下所示:
[root@RHEL4 ~]# fdisk /dev/sdb
Command (m for help):
2.mkfs
硬盘分区后,下一步的工作是Linux文件系统的建立。类似于Windows下的格式化硬盘。在硬盘分区上建立文件系统会冲掉分区上的数据,而且不可恢复,因此在建立文件系统之前要确认分区上的数据不再使用。建立文件系统的命令是mkfs,格式如下:
mkfs [参数] 文件系统
mkfs 命令常用的参数选项:
-t :指定要创建的文件系统类型。
-c:建立文件系统前首先检查坏块。
-l file:从文件 file 中读磁盘坏块列表,file 文件一般是由磁盘坏块检查程序产生的。
-V:输出建立文件系统详细信息。
例如, 在/dev/sdb1 上建立 ext3 类型的文件系统, 建立时检查磁盘坏块并显示详细信息。
如下所示:
[root@RHEL4 ~]# mkfs -t ext3 -V -c /dev/sdb1
3.fsck
fsck 命令主要用于检查文件系统的正确性。并对 Linux 磁盘进行修复。fsck 命令的格式如下:
fsck [参数选项] 文件系统
fsck 命令常用的参数选项:
-t:给定文件系统类型,若在/etc/fstab 中已有定义或 kernel 本身已支持的不需添加此
项。
-s:一个一个地执行 fsck 命令进行检查。
-A:对/etc/fstab 中所有列出来的分区进行检查。
-C:显示完整的检查进度。
-d:列出 fsck 的 debug 结果。
-P:在同时有-A 选项时,多个 fsck 的检查一起执行。
-a:如果检查中发现错误,则自动修复。
-r:如果检查有错误,询问是否修复。
例如,检查分区/dev/sdb1 上是否有错误,如果有错误自动修复。
[root@RHEL4 ~]# fsck -a /dev/sdb1
fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 11/26104 files, 8966/104388 blocks
4.dd
dd命令用于将指定的输入文件拷贝到指定的输出文件上。并且在复制过程中可以进行格式转换。dd命令与cp命令的区别在于:dd命令可以在没有创建文件系统的软盘上进行,拷贝到软盘的数据实际上是镜像文件。类似于DOS中的diskcopy命令的作用。dd命令的格式为:
dd [<if=输入文件名/设备名>] [<of=输出文件名/设备名>] [bs=块字节大小] [count=块数]
6.du
du命令用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用
文件系统数据块的情况。du 命令语法如下:
du [参数选项] [name---]
du 命令的参数选项:
-s:对每个 name 参数只给出占用的数据块总数。
-a:递归显示指定目录中各文件及子目录中各文件占用的数据块数。
-b:以字节为单位列出磁盘空间使用情况(AS 4.0 中默认以 KB 为单位) 。
-k:以 1024 字节为单位列出磁盘空间使用情况。
-c:在统计后加上一个总计(系统默认设置) 。
-l:计算所有文件大小,对硬链接文件重复计算。
-x:跳过在不同文件系统上的目录,不予统计。
例如,以字节为单位列出所有文件和目录的磁盘空间占用情况。命令如下所示:
[root@RHEL4 ~]# du -ab
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)