rhel6之三:ssh+tcpd+vnc+physical storage+kvm

chengdu 贡献于2013-07-08

作者 yinghong  创建于2011-05-22 06:38:00   修改者yinghong  修改于2011-08-10 14:13:00字数17661

文档摘要:SSH远程登录:1、SSH(SecureShell,安全的命令解释器)为客户机提供安全的Shell环境,用于远程管理,默认端口:TCP22。比较早的telnet、rsh等工具有很大优势,SSH是目前应用最为广泛的服务器远程管理方式SSH登录使用的用户名:服务器中的本地系统用户的帐号名SSH登录的用户验证方式密码验证:使用服务器中系统帐号对应的密码密钥对验证:使用客户机中生成的公钥、私钥.
关键词:

一、 SSH远程登录: 1、SSH(Secure Shell,安全的命令解释器) 为客户机提供安全的Shell环境,用于远程管理,默认端口:TCP 22。比较早的telnet、rsh等工具有很大优势,SSH是目前应用最为广泛的服务器远程管理方式 SSH登录使用的用户名:服务器中的本地系统用户的帐号名 SSH登录的用户验证方式 密码验证:使用服务器中系统帐号对应的密码 密钥对验证:使用客户机中生成的公钥、私钥 OpenSSH · 官方站点:http://www.openssh.com · 主要软件包:openssh-server、openssh-clients · 服务名:sshd · 服务端主程序:/usr/sbin/sshd · 客户端主程序:/usr/bin/ssh · 服务端配置文件:/etc/ssh/sshd_config · 客户端配置文件:/etc/ssh/ssh_config 2、SSH服务器端配置文件:sshd_config Port 22 监听的端口(默认22) ListenAddress 192.168.2.1 监听 的IP地址(默认监听所有IP) PermitRootLogin no 禁止ROOT用户远程登录 PermitEmptyPasswords no 禁止密码为空的用户远程登录 LoginGraceTime 2m 限制用户登录验证过程的时间(默认为2分钟) MaxAuthTries 6 限制用户登录验证过程的最大重试次数 DenyUsers zhangsan lisi 拒绝XX用户远程登录系统,其他均允许 AllowUsers jerry admin@61.23.24.25 允许jerry在任何何IP的主机上远程登录,允许admin只能在主机61.23.24.25登录 ,其他均拒绝(不要同时使用AllowUsers和DenyUsers配置) PasswordAuthentication yes 是否启用密码验证 PubkeyAuthentication yes 是否启用密钥对验证 AuthorizedKeysFile .ssh/authorized_keys 指定保存各用户公钥内容的数据文件位置,默认保存客户机用户公钥信息的文件位于(服务器某个用户宿主目录下的) 3、SSH客户端应用 · 使用ssh命令远程登录 · 方式1: ssh 用户名@服务器地址 · 方式2: ssh -l 用户名 服务器地址 · 方式3: ssh 服务器地址(缺省时会尝试以当前的本地用户名进行登录) · 如查SSH服务器使用非默认端口,则客户机在登录时必须时确指定端口号 ssh -p 端口 用户名@服务器地址 · 使用scp命令远程复制文件/目录 · 方式1: scp 用户名@服务器地址:源文件 目标路径 · 方式2: scp 本地文件 用户名@服务器地址:目标路径 · 若复制的是目录,则需添加“-r”选项 · 使用sftp命令从服务器下载文件 · 使用图形客户端软件 PuttyCN · 主要用途:基于SSH协议远程登录以便管理服务器 · 下载地址:http://wrc.gro.clinux.org/putty/ · 使用图形客户端软件 WinSCP · 主要用途:基于sftp、scp或ftp的方式下载/上传数据 · 下载地址:http://winscp.net/ 4、构建密钥对验证的SSH登录体系 基本实现步骤 1.在客户机创建密钥对 ssh-keygen命令:ssh-keygen -t rsa 或ssh-keygen -t dsa   创建证书 2.将公钥文件上传至服务器 在/home/用户/下建立.ssh文件夹,并将其权限设置为700 方法:使用普通用户登录SSH服务器,创建.ssh目录,或使用ROOT用户创建.ssh目录,并更改属主和属组为该普通用户 把公匙传到SSH服务器主机的/home/用户名/.ssh中并命名为authorized_keys 可以使用scp命令或ssh-copy-id -i .ssh/id_rsa.pub 用户名@SSH服务器 id_rsa_pub文件可以一对多 3.设置服务器 禁用密码验证、启用密钥对验证,并重启sshd服务 4.在客户机远程登录进行验证 二、 使用TCP Wrappers机制 1、TCP Wrappers的作用原理 · 软件包 · tcp_wrappers-7.6-40.2.1.i386.rpm · 保护机制的实现方式 · 方式1:通过tcpd主程序对其他服务程序进行包装 · 方式2:由其他网络服务程序调用libwrap.so.*链接库 使用方式1时需要运行tcpd主程序,而使用方式2时无需运行tcpd主程序(例如vsftpd、sshd、xinetd等),方式2更为常用 · 主要配置文件 /etc/hosts.allow /etc/hosts.deny · 设置访问控制策略 · 配置格式:服务程序列表:客户机地址列表 · 服务程序列表 p 单个服务程序名 in.telnetd, vsftpd,sshd p 以逗号“,”分隔多个服务程序名 p ALL表示所有服务程序 · 客户机地址列表 p 单个IP地址 p 网段地址,“192.168.4.”或“192.168.4.0/255.255.255.0” p 使用通配符 ? 和 * p 以逗号“,”分隔多个地址 p ALL表示所有地址 · TCP Wrappers的访问控制原则 · 首先检查 hosts.allow 文件,若找到相匹配的策略,则允许访问 · 否则继续检查 hosts.deny 文件,若找到相匹配的策略,则拒绝访问 · 如果两个文件中都没有相匹配的策略,则允许访问 三、RHEL6企业版开启VNC Server远程桌面功能 使用SSH连接远程通过字符界面来操作Linux,但是对于更多熟悉图形人来说是很不方便的,因此开启Linux的远程桌面还是很有必要的。目前有两种比较流行的方式:XDM(X display manager)方案和VNC方案,而我比较倾向于VNC方案,一是因为VNC方案配置起来相对比较容易,二是VNC方案支持多种连接方式,比如通过浏览器访问Linux桌面,免去需要安装客户端的麻烦. VNC软件主要由两个部分组成:VNC SERVER及VNC VIEWER。将VNC SERVER安装在被控制的主机上,才能在主控端执行VNC VIEWER控制被控端。 1、 确认及安装VNCSERVER:VNCSERVER的RPM包:tigervnc-server; 如果没有安装VNCSEVER,那么从光盘找到安装包进行安装,可以通过YUM来安装 rpm –q tigervnc-server 2、 开始配置VNCSERVER:可以使用vncserver命令来启动VNC服务:命令格式为:vncserver :桌面号,其中桌面号用数字的方式表示,每个用户连接要占用一个桌面,VNC服务使用的端口号与桌面号相关,VNC服务使用的TCP端口号从5900开始,例如桌面号是1,则使用的端口号是5901,桌面号是2,则端口号为5902, 启动VNCSERVER,第一次启动VNCSERVER会提示输入密码,这里分为管理员账户及普通账户,启动方式略有所不同 管理员帐户: [root@localhost /]# vncserver :1 You will require a password to access your desktops. Password: 输入vnc 连接密码 Verify: 确认vnc密码 xauth: creating new authority file /root/.Xauthority New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:1.log 普通用户: [root@localhost /]#su - chenyinghong [chenyinghong @localhost /]$ vncserver :2 You will require a password to access your desktops. Password: 输入vnc 连接密码 Verify: 确认vnc密码 xauth: creating new authority file /home/ chenyinghong /.Xauthority New 'localhost.localdomain:2 (chenyinghong)' desktop is localhost.localdomain:2 Creating default startup script /home/chenyinghong /.vnc/xstartup Starting applications specified in /home/chenyinghong /.vnc/xstartup Log file is /home/ chenyinghong/.vnc/localhost.localdomain:2.log * 注意到每个用户都可以启动自己的 vncserver,每个用户可以启动多个 vncserver, 用ip加端口号 ip:1,ip:2,ip:3 来标识、区分,使用同一端口会使另外登录的用户自动退出。另,VNCSERVER的大部分配置文件及日志文件都在用户home目录下.vnc目录下。 用户可以自定义启动号码如 例: [chenyinghong@localhost /]$ vncserver :2 #注意:2前面一定要有空格 A VNC server is already running as :2 相关桌面配置,RHEL支持两种图形模式:KDE模式和gnome模式,你的RHEL使用的什么图形模式这个一般只有登录到图形界面查看一下才能知道,或者通过ps -A命令列出所有当前运行的程序,看看有没有KDE或者gnome字样来判断一下。 编辑/home/user1/.vnc/xstartup(如果不存在的话,可以手动创建一个,并给予可执行权限),内容如下: 1. #!/bin/sh   2. vncconfig -iconic &   3. unset SESSION_MANAGER   4. unset DBUS_SESSION_BUS_ADDRESS   5. OS=`uname -s`   6. if [ $OS = 'Linux' ]; then   7. case "$WINDOWMANAGER" in   8. *gnome*)   9. if [ -e /etc/SuSE-release ]; then   10. PATH=$PATH:/opt/gnome/bin   11. export PATH   12. fi ;;   13. esac   14. fi   15. if [ -x /etc/X11/xinit/xinitrc ]; then   16. exec /etc/X11/xinit/xinitrc   17. fi   18. if [ -f /etc/X11/xinit/xinitrc ]; then   19. exec sh /etc/X11/xinit/xinitrc   20. fi   21. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources   22. xsetroot -solid grey   23. xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &   24. #twm &  配置防火墙以及SELinux 运行system-config-firewall启动防火墙配置界面,在Other Ports里面添加端口5901,协议选择tcp.如果启用了SELinux的话,需要运行chcon -t unconfined_exec_t /usr/bin/vncserver 改变vncserver的Security Context,否则在使用VCN连接的时候会碰到很多问题,比如点击桌面的图标没有反应,程序不能被启动等等 编辑/etc/sysconfig/vncservers,内容如下:添加用户名机设置用户登陆的桌面环境信息 VNCSERVERS="1:user1 2:user2" VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared " -alwaysshared代表允许多用户同时登录 VNCSERVERARGS[2]="-geometry 800x600" 然后运行sudo chkconfig --level 345 vncserver on ,让VNC Server随系统自动启动最后,运行sudo /etc/init.d/vncserver start 来启动VNC Server 测试连接 使用VNC客户端连接:1 ,使用上面设置的密码。Linux上可以使用TigerVNC的客户端;Windows上推荐使用UltraVNC (http://www.uvnc.com/ ) 密码修改: 运行: #vncpassword 即可: 停止vnc server: #vncserver -kill :1 #vncserver -kill :2 四、磁盘管理 确认系统中的磁盘设备 fdisk -l [磁盘设备] 新挂接的硬盘可能未包含任何分区( Disk /dev/sdb doesn't contain a valid partition table ) 对于已有的分区,将通过列表的方式输出以下信息: l Device:分区的设备文件名称。 l Boot:是否是引导分区,是则有“*”标识。 l Start:该分区在硬盘中的起始位置(柱面数)。 l End:该分区在硬盘中的结束位置(柱面数)。 l Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节。 l Id:分区类型的ID标记号,对于EXT3分区为83,LVM分区为8e。 l System:分区类型 注意分区类型的概念在windows中是没有的,分区类型与文件系统类型应一致,这样管理磁盘文件系统时才不容易引起混乱 规划硬盘中的分区 · fdisk命令 · 用途:在交互式的操作环境中管理磁盘分区 · 格式:fdisk [磁盘设备] · 交互模式中的常用指令 · m:查看操作指令的帮助信息 · p:列表查看分区信息 · n:新建分区 · d:删除分区 · t:变更分区类型 · w:保存分区设置并退出 · q:放弃分区设置并退出 变更磁盘(特别是正在使用的硬盘)的分区设置以后,建议最好将系统进行重启,或执行partprobe命令使操作系统获知新的分区表情况。 在分区中创建文件系统:mkfs -t ext4 /dev/分区设备名(或mkfs.ext4 /dev/分区设备名) 可以使用tune2fs 分区设备将ext3转换成ext4 步骤: 现卸除挂载 tune2fs -O extent,uninit_bg,dir_index /dev/sdb1 -O是大写的o e2fsck /dev/sdb1 fsck -pf /dev/sdb1 重新挂载并用df -T查看 Ext2转换成ext3 Tune2fs –j /dev/sdb1 mkswap命令:用途:Make Swap,创建交换文件系统.格式:mkswap 分区设备 swapon swapoff启用和停用交换分区 挂载、卸载文件系统(手动挂载和自动挂载) 管理交换空间:相当于WINDOWS的虚拟内存,用来在系统面临主内存空间不足时提供应急溢出 1):使用fdisk创建新分区或在卷组上创建一个逻辑卷,将分区类型改为82 2):mkswap 分区设备 在指定的分区上创建交换文件系统 3):blkid 分区设备 将确定UUID 4):将新交换空间添加到/etc/fstab中 UUID=uuid swap swap defaults 0 0 5):swapon -a 将激活新交换分区 swapon -s 将显示当前交换分区的状态 swapoff 分区设备 将停用该特定交换区 五:磁盘配额 · 实现磁盘限额的条件 · 需要Linux内核支持 · 安装quota软件包 · Linux磁盘限额的特点 · 作用范围:针对指定的文件系统(分区) · 限制对象:用户帐号、组帐号 · 限制类型: p 磁盘容量(默认单位为KB) p 文件数量 · 限制方法:软限制、硬限制 步骤: 1、启用文件系统的配额支持:添加usrquota、grpquota挂载参数 ,修改/etc/fstab文件,可以执行 mount -o remount /挂载点 进行重新挂载 2、检测磁盘配额并创建配额文件:使用quotacheck命令创建配额文件 quotacheck -ugcv 文件系统或quotacheck -augcv -u、-g:检测用户、组配额 -c:创建配额数据文件 -v:显示执行过程信息 -a:检测所有可用的分区 3、edquota命令编辑配额设置:edquota -u 用户名 edquota -u 组名 4、启用、关闭文件系统的配额功能: quotaon -ugv /挂载点 quotaoff -ugv /挂载点 也可以执行”quotaon -augv“启用所有可用分区的配额功能、 ”quotaoff -augv“关闭所有可用分区的配额功能,”-a“选项表示检查所有分区 5、验证磁盘配额功能 查看配额使用情况 · 侧重用户、组帐号角度:使用quota命令 p quota -u 用户名 p quota -g 组名 · 侧重文件系统角度:使用repquota命令 p repquota 文件系统 p repquota -a 给批量用户设磁盘配额 1、先给一个已存在的用户建好配额: 2、#users='awk 'BEGIN {FS=":"} {if ($3>500) print $1}' /etc/passwd'(第一个和最后一个符号是 反撇号即esc下面的键) 3、显示上面的赋值:echo $users 4、edquota -p 用户名 $users 配置LVM和RAID 1、 LVM机制 推荐步骤: a) PV à VG à LV à 格式化,挂载使用文件系统 功能 物理卷管理 卷组管理 逻辑卷管理 Scan 扫描 pvscan vgscan lvscan Create 建立 pvcreate vgcreate lvcreate Display 显示 pvdisplay vgdisplay lvdisplay Remove 删除 pvremove Vgremove删除空的卷组 lvremove Extend 扩展 Vgextend 把PV加入VG,动态扩展卷组 lvextend Vgreduce把卷组中未使用的物理卷移出卷组 Lvreduce缩小逻辑卷容量 Vgmerge合并两个已存在的卷组 Vgsplit把一个卷组拆分为两个 pvcreate 分区设备。。。 vgcreate 卷组名 物理卷。。。 (创建VG: -s 在创建时指定PE块的大小,默认是4M。 如:# vgcreate volGroup03 -s 8M /dev/sd[cd]1) lvcreate -L 容量 -n 逻辑名 卷组名 扩容卷组 首先执行fdisk命令分区并设置分区类型为8e,执行pvcreate命令创建一个新的物理卷 然后执行命令vgextend 卷组名 物理卷 使用vgdisplay确认扩展卷组成功 扩容LVM: lvextend –L +容量 /dev/卷组名/逻辑名 然后执行resize2fs /dev/卷组名/逻辑名 可以用-p选项显示操作期间的进度 验证已挂载文件系统新在大小:df -h /挂载点 在resize2fs运行时,文件系统仍保持挂载状态,并且可以使用。 缩小LVM容量:(注意系统时间(YYYY-MM-DD):应为当前时间) 先卸除挂载:umount /挂载点 //解除挂载要减小的文件系统 然后检查文件系统:fsck -f /dev/卷组名/逻辑卷名(也可以用e2fsck -f /dev/卷组名/逻辑卷名) //以在进行大小调整之前验证所有文件系统数据结构是否都已得到清理 接着减少文件系统:resize2fs -p /dev/卷组名/逻辑卷名 大小 //会将文件系统大小调整为指定大小 最后减少逻辑卷大小:lvreduce /dev/卷组名/逻辑卷名 -L 大小 //会将逻辑卷减小到指定大小 验证:重新挂载并用df -h查看(mount -a) 缩小卷组: 1、 执行pvmove /dev/sdbN 在PV之间移动PE (sdbN代表某个物理卷) 注意:卷组中必须要有足够多的未分配空间(PE)应不少于要移走的物理卷的大小 2、执行vgreduce vgname /dev/sdbN 将/dev/sdbN从卷组中移出 逻辑卷快照一: LVM提供一个极妙的设备,它是snaphot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本 ,快照提供原始卷的静态视图,LVM 快照通过把文件系统的改变记录到一个快照分区,而不是对这个分区做镜像.因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区, 所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。 快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面 现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用lvdisplay来查询一下这个逻辑卷 可以看到,这个逻辑卷/dev/vg00/lv00的大小是4G。我们将这个逻辑卷/dev/vg00/lv00挂载到/data下面。 挂载成功,复制一些数据到/data里面去。方便等下做试验 现在我们就为逻辑卷/dev/vg00/lv00来做快照 逻辑卷快照创建成功了, 参数解释, -L 50M 指定逻辑卷快照的大小 -s 表逻辑卷快照 -n lv00snap 逻辑卷快照的名字 /dev/vg00/lv00 需要做快照的逻辑卷 我们的逻辑卷快照仅仅使用了百分之0.02,现在我们将逻辑卷快照给挂载起来。 注意:这个快照卷建好之后,是不需要格式化就可以进行挂载的。格式化时会出现“permission denied while setting up superblock”的错误提示 我们可以看到,这两个分区好像是一模一样的。现在我们看看这两个分区的数据是不是一样的呢。 可以看到,这两个分区里面的数据是一模一样的。而我们快照只使用了50M里面的百分之0.02,大概只使用了1M的大小。就可以备份/dev/vg00/lv00snap里面的所有数据。 现在我们将逻辑卷/etc/vg00/lv00里面的grub这个目录给删除掉,看下快照里面会发生什么 现在我们已经删除了grub目录,在到快照里面去看看grub是否还在 我们的grub目录还在,当我们把逻辑卷里面的数据给删除了,但是我们的快照里面的数据还在。 刚才我们是在逻辑卷里面删除了数据,但是快照里面的还在。现在我们在逻辑卷里面添加数据,那么快照会不会发生改变呢。 很明显,是没有这个文件的。快照只会备份当时逻辑卷的一瞬间 可以看到,快照里面并没有我们刚才写入的10M的文件,但是快照的使用率却变成了百分之19.67。 如果向逻辑卷中写入的是50M数据的时候,卸载快照后,然后挂载快照,就会发现快照已经挂载不起来了。这是因为如果数据更改量大于快照存储量,则快照将自动变为不可用了。 解释下逻辑卷快照原理 当我们给逻辑卷做一个快照的时候,快照会备份逻辑卷中所有的数据的节点号,只是节点号,而并非真正的数据。所有快照的大小很小。当我们删除逻辑卷中的数据的时候,其实并没有删除逻辑卷中的真正数据,而只是删除了节点号。而快照中备份了节点号,所以删除了逻辑卷中的数据,在快照中依然会存在数据。 当我们在逻辑卷中添加了一个数据的时候,逻辑卷为了保存以前数据的节点号,就将真正的数据移到了快照里面。而我们的快照是有50M的大小,当往逻辑卷里面添加10M的数据的时候,我们的快照还可以保存这10M的数据。但是当往逻辑卷里面添加50M的数据,因为添加的数据大于了快照的大小,快照就保存不了在逻辑卷中添加的数据,所以当重新挂载的时候,快照就坏了。 逻辑卷快照二:利用逻辑快照进行逻辑卷的备份和还原 快照(snapshot)是特殊的逻辑卷,它是在生成快照时存在逻辑卷的准确拷贝。对于需要备份或者复制的现有数据集临时拷贝以及其他操作来说,快照是最合适的选择。快照只有在它们和原来的逻辑卷不同时,才消耗空间。当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中 生成快照和利用快照备份和还原原逻辑卷 1.建立逻辑卷 /dev/vg00/lv00,并将目录/data挂载上去 2.复制相关数据内容到/data。 3. 创建一个名为lv00snap的/dev/vg00/lv00的只读快照卷,并为其分配一定的空间 #lvcreate -L 50M -p r -s -n lv00snap /dev/vg00/lv00 -p  r 创建的快照卷是只读的,防止用户在快照卷创建文件,快照可以卷仅仅是让我们获得一个备份路径 将/dev/vg00/lv00snap挂载为只读/datasnap。 #mkdir /datasnap #mount -o ro /dev/vg00/lv00snap /datasnap 使用dump(也可以使用tar命令)将/datasnap文件备份为名为/data-backup.dump的文件 #dump -0u -f /data-backup.dump /datasnap #ls -l /data-backup.dump 当不再使用快照时请卸载/datasnap,并删除快照 #umount /datasnap #lvremove /dev/vg00/lv00snap 卸载/data,在/dev/vg00/lv00中创建新的文件系统。重新挂载,确保它是空的。 #umount /data #mkfs.ext4 /dev/vg00/lv00 #mount /dev/vg00/lv00 /data #ls /data 使用restore从备份中恢复/data丢失的内容。 #cd /data #restore -rf /data-backup.dump #ls Tar与dump命令: Tar命令 用途:制作归档文件、释放归档文件 格式:tar [选项]... 归档文件名 源文件或目录 tar [选项]... 归档文件名 [-C 目标目录] 常用命令选项 -c:创建 .tar 格式的包文件 -x:解开.tar格式的包文件 -v:输出详细信息 -f:表示使用归档文件 -p:打包时保留原始文件及目录的权限 -t:列表查看包内的文件 -C:解包时指定释放的目标文件夹 -z:调用gzip程序进行压缩或解压 -j:调用bzip2程序进行压缩或解压 Dump命令 功能说明:备份文件系统。 补充说明:dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件 dump 参数 备份设备或文件 要备份的文件系统 如:dump -0 –u –f /sdb1.dump /dev/sdb1 常用参数:  -0123456789  备份的层级。0 表示 0 级或基本级备份。这是完全系统备份,您要定期执行以保存整个系统。对于后续的备份,您可以使用其他数字(1-9)来代替 0,以改变备份级别。1 级备份会保存自从执行 0 级备份以来更改过的所有文件。2 级备份会保存自从执行 1 级备份以来更改过的所有文件,以此类推  -u  备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等。  -f <设备名称>  指定备份设备。即备份到那个文件,也可以指定一个设备文件 注意,当你备份的目录是一个子目录,而不是一个分区的顶层目录时-u参数不能使用的 使用restore 命令恢复  Restore -rf 备份设备 RAID磁盘阵列 在Linux系统中做RAID,磁盘阵列的设备可以是一块磁盘中的三个以上的分区,也可以是三块或以上的磁盘。本文主要以几块磁盘为例,来实现在RAID5。 实验说明: 在VMware中进行,系统中有一块磁盘sda,新添加6块SCSI磁盘,分别为sdb,sdc,sdd,sde,sdf,sdg, 其中4块作为磁盘阵列的设备,1块作为预备(spare)磁盘,还有1块留作备用。 实验步骤: 1.先查看一下系统中磁盘设备:fdisk -l 显示结果略 2.接下来开始创建RAID了,主要会应用到mdadm命令,使用此命令需要先安装RHEL6安装光盘中自带的mdadm包,如果没有安装,先进行安装。 [root@svr ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-f] 参数说明: --create //表示要创建raid --auto=yes /dev/md0 //新建立的软件磁盘阵列设备为md0,md序号可以为0-9 --level=5 //磁盘阵列的等级,这里表示创建是的raid5 --raid-devices //添加作为磁盘阵列用的磁盘的块数 --spare-devices //添加作为预备(spare)磁盘的块数 /dev/sd[b-f] //磁盘阵列所使用的设备,还可写成/dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf 另外这条命令也可以简写: mdadm -C /dev/md0 -l5 -n4 -x1 /dev/sd[b-f] 3.查看RAID是否成功创建及是否正常运行,有两种方法(当磁盘容量越大时,磁盘阵列构建的时间越长,所以可能需要等待很长时间才能看到以下信息): 执行mdadm --detail /dev/md0 命令查看RAID的详细信息:图略 查看/proc/mdstat文件,可以比较简单明了的查看RAID创建和运行的情况: S代表预备(spare)磁盘,4个U代表正常,出现_表示不正常 4.格式化并且挂载和使用创建的RAID: [root@svr ~]# mkfs.ext4 /dev/md0 [root@svr ~]# mkdir /raid5 [root@svr ~]# mount /dev/md0 /mnt/raid5/查看一下挂载的情况(已经挂载上):略 来查看一下新挂的RAID是否可以使用 5.设置开机自动启动RAID以及自动挂载: 先建立/etc/mdadm.conf这个配置文件: [root@svr ~]# mdadm --detail /dev/md0 |grep UUID > /etc/mdadm.conf 上面建立的这个文件需要作小小的修改: [root@svr ~]# vi /etc/mdadm.conf     ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805 然后再修改/etc/fstab文件,设置开机自动挂载: [root@svr ~]# vi /etc/fstab     /dev/md0         /mnt/raid5      ext4        defaults                0 0 重启一下系统,就可以检查开机自动挂载有没有设置成功了! 6.模拟RAID5中一块磁盘损坏,检验spare磁盘的功能(raid5中允许一块磁盘损坏,我们所设置的那1块spare磁盘会立即替代损坏的磁盘,进行RAID的重建,保障数据的安全): [root@svr ~]# mdadm --manage /dev/md0 --fail /dev/sdd //使用此命令设置磁盘sdd成为出错的状态 来查看一下:mdadm --detail /dev/md0 可以查看cat /proc/mdstat文件查看RAID5的重建过程 再来看一下重建完后的结果 /mnt/raid5还可以正常使用 7.将出错的磁盘删除并加入新的磁盘: 先删除损坏的磁盘sdd: [root@svr raid5]# mdadm --manage /dev/md0    --remove /dev/sdd       //将损坏的磁盘sdd从RAID中删除 再添加一块新的磁盘作为spare磁盘: [root@svr raid5]# mdadm --manage /dev/md0 --add /dev/sdg        //添加新的磁盘sdg OK,再来查看一下: 执行以下命令 mdadm --detail /dev/md0查看结果 8关闭软件RAID的方法: 当你不再需要已经设置的RAID的时候,可以用以下两种方法关闭RAID: >卸载/dev/md0,并且删除或注释掉/etc/fstab文件中的配置: [root@svr ~]# umount /dev/md0     [root@svr ~]# vi /etc/fstab     #/dev/md0         /mnt/raid5        ext4        defaults            0 0 >使用命令mdadm关闭/dev/md0,并注释掉/etc/mdadm.conf中的设置: [root@svr ~]# mdadm --stop /dev/md0     [root@svr ~]# vi /etc/mdadm.conf     #ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805 可以在做好的RAID5上创建LVM RAID0和RAID1实同于RAID5 RAID0:并行读写数据 RAID1:镜像磁盘阵列 注意:RAID0和RAID1也应做为重点去练习 通过文件系统的UUID挂载分区或逻辑卷 先使用blkid显示块设备(分区或逻辑卷)的UUID blkid /dev/sdb1 修改/etc/fstab文件,添加以下信息: UUID=uuid /挂载点 文件系统类型 defaults 0 0 最后挂载新的文件系统:mount /挂载点 用df命令验证 RHEL6的块设备加密 红帽企业级 Linux 6支持块设备加密,块设备加密通过加密保护块设备中的数据。LUKS为数据建立了一个非磁盘格式以及密码短语/密钥管理策略。LUKS 通过 dm-crypt 模块使用内核设备映射器子系统。这个协议提供处理设备数据加密和解密底层映射。用户级别操作,比如生成和访问加密的设备,是通过使用 cryptsetup 程序完成的。LUKS加密整个块设备,LUKS因此非常适合保护移动设备的内容,比如:可移动存储介质、笔记本磁盘驱动器。 要确保cryptsetup-luks包要安装 首先使用fdisk创建一个新分区,如创建一个新分区/dev/sdb1 1、 cryptsetup luksFormat /dev/sdb1 可对新分区进行加密并设置解密密码 Are you sure? (Type uppercase yes): YES (输入大写的YES来确定创建加密分区) Enter LUKS passphrase: (输入创建密码,你将用密码来保护你的加密分区。如果你把密 码弄丢了,那就太不幸了,你就无法取回这些数据了) Verify passphrase: (确认密码) 2、 这样一个加密分区就建立好了.接下来我们需要创建一个可以挂载的分区并给它取个名字(这里我给取名为sdb1, 你也可以叫它test、fred、我的秘密分区或者任何你喜欢的名字) cryptsetup luksOpen /dev/sdb1 sdb1 Enter LUKS passphrase: (这里输入的是创建加密分区时设置的密码) 它将会被创建在/dev/mapper/下面.这里就是/dev/mapper/sdb1,可以用ls命令查看 3、 现在将该分区格式化为ext4文件系统。mkfs.ext4 /dev/mapper/sdb1 4、 接下来我们创建一个用于挂载的挂载点并挂载. 记住,你必须从/dev/mapper/路径下使用该设备 # mkdir /bak # mount /dev/mapper/sdb1 /bak 好了,现在你可以使用你的加密分区了,如向其内创建或存储一些文件。 5、 使用完毕后为了保护数据的隐密,我们需要取消挂载并关闭加密分区. # umount /bak # cryptsetup luksClose sdb1 6、 只有在打开加密设备的时候,你才需要输入LUKS密码。记住,如果丢了密码,你就完蛋了。你可以删除分区重新再来,但是数据是无法恢复的。打开加密设备并加载以后,你就可以像使用其它分区一样使用它了。 #cryptsetup luksOpen /dev/sdb1 sdb1 Enter LUKS passphrase: 系统每次启动自动挂载加密分区: /etc/crypttab包含要在系统启动期间解锁的设备列表,每一行列出一个设备,使用空格分隔字段。其格式如下: name /dev/sdaN /path/to/password/file 每个字段的含义: name字段是给加密分区取的一个名字 /dev/sdaN字段用于加密的分区设备 /path/to/password/file字段是用于解锁设备的密码文件,如果该字段为空或设置为none,在系统启动时,系统会提示用户输入解密密码 具体操作如下: 1、 修改/etc/crypttab并添加如下内容,这个文件的作用是每次系统启动时挂载加密分区时要询问的的密码 sdb1 /dev/sdb1 /path/file 若/path/file省略或不设置,则系统在启动时将要求用户输入密码 2、 修改/etc/fstab文件:添加如下内容 /dev/mapper/sdb1 /挂载点 ext4 defaults 0 0 注:sdb1是给加密分区取的名字即执行cryptsetup luksOpen /dev/sdb1 sdb1命令后给分区起的名称 3、echo “密码” > /path/file “密码”创建加密分区时设的密码 4、chown root /path/file 5、chmod 600 /path/file 6、执行下列命令:cryptsetup luksAddKey /dev/sdb1 /path/file rhel6 kvm完全版 RHEL6 kvm支持条件: 操作系统:64-bit: rhel-server-6.0-x86_64 处理器:cpu支持虚拟化 #cat /proc/cpuinfo | grep vmx 或 cat /proc/cpuinfo | grep smv Svm:AMD basic virtualization support Vmx:Intel basic virtualization support 如果服务器对kvm支持,则可以安装kvm模块虚拟化物理主机 一、 在物理主机上安装RHEL6(安装过程略) 二、 若要安装其他RPM包,可以先将YUM配置好 三、KVM要用的软件 kvm模块      #yum install qemu-kvm.x86_64 kvm调试工具(可以不安装)         #yum install qemu-kvm-tools.x86_64 python组件,主要用来记录创建vm时的xml文件      #yum install python-virtinst.noarch qemu组件,使用qemu命令来创建磁盘,启动虚拟机等(这个可能在安装时qemu-kvm.x86_64已安装)      #yum install qemu-img.x86_64 网络支持工具      #yum install bridge-utils.x86_64 虚拟机管理工具,使用virsh来管理虚拟机      #yum install libvirt 图形界面管理虚拟机(对于远程的被管理主机,可以不安装,用于本地管理)      #yum install virt-manager 重新启动 四、.检查kvm模块是否安装完成      #lsmod | grep kvm   会显示两个模块   kvm_intel/ kvm_amd   kvm 检查物理主机虚拟化完成情况   #virsh list    Id Name                 State ---------------------------------- 出现如上表明已装好了 五、网络配置:宿主服务器安装完后先要设定网络,在libvirt中运行KVM网络有两种方法:网络地址转换(NAT)和桥接网络。网络地址转换是默认方法;在这里我选择bridge模式,即桥接模式 桥接模式需要手动设置   rhel的配置如下:   创建一个ifcfg-br0 文件 路径/etc/sysconfig/network-scripts/ifcfg-br0   填写以下内容:         DEVICE=br0             TYPE=Bridge             BOOTPROTO=static             IPADDR=192.168.1.213             NETMASK=255.255.255.0             GATEWAY=192.168.1.10             ONBOOT=yes   修改eth0的内容:/etc/sysconfig/network-scripts/ifcfg-eth0 成以下的形式:             DEVICE=eth0             ONBOOT=yes             BRIDGE=br0             NM_CONTROLLED=no   如果是双网卡或是多网卡,照此过程修改即可。然后重启物理机网络   #service network restart 配置好后重启网络 如果一切无误的话 br0 会接替 eth0 的ip 以上都准备好后就可以创建虚拟机了 方式一:通过virt-manager图形管理界面创建、管理本地或远程的KVM 安装virt-manager软件包 安装好后:应用程序――系统工具――虚拟系统管理器或在命令行输入virt-manager也可以打开虚拟机管理器 1、连接、管理已存的KVM 文件――添加连接 : 加上主机IP 2、 新建虚拟机: 单击工具栏上的“创建新虚拟机”按钮 其他过程略 方式2:virt-install 来新建虚拟机了,但是启动后没办法看到,所以要安装客户端来管理,也可以用virsh来管理但还要加VNC来连接虚拟机(此方式适用于字符界面) #yum install tigervnc-server.x86_64 改防火墙 还要改一下iptables #iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6900 -j ACCEPT #service iptables save 可以开始新建虚拟机 #virt-install --name vmxp1 --ram 1024 --vcpus=1 --disk path=/home/kvm/img/xp1.img,size=20 --network bridge=br0 --cdrom /dev/sr0 --vnclisten=58.211.162.45 --vncport=6900 --vnc 如果不用图形管理软件,可用virsh来管理,到这就可以了. 附命令 virsh常用命令一览表 格式:virsh [COMMAND] [ARGS...] COMMAND也是 virsh提供的命令,常用的命令如下: help显示该命令的说明 quit结束 virsh,回到 Shell connect连接到指定的虚拟机服务器 Create启动一个新的虚拟机 destroy强制关闭一个虚拟机 start开启(已定义的)非启动的虚拟机 define从 XML 定义一个虚拟机 undefine取消定义的虚拟机 dumpxml转储虚拟机的设置值 list列出虚拟机 reboot重新启动虚拟机 save存储虚拟机的状态 restore回复虚拟机的状态 suspend暂停虚拟机的执行 resume继续执行该虚拟机 dump将虚拟机的内核转储到指定的文件,以便进行分析与排错 shutdown关闭虚拟机 setmem修改内存的大小 setmaxmem设置内存的最大值 setvcpus修改虚拟处理器的数量 而virsh命令语法的ARGS则是COMMAND 搭配的参数。不同的COMMAND可能需搭配不同的参数,如果ARGS需指定虚拟机,你可以使用下列的格式指定是哪一个虚拟机器:虚拟机的名称、虚拟机启动后的标识符、虚拟机的 UUID。 配置虚拟机在宿主主机每次启动后自动启动 1、 应用程序――系统工具――虚拟系统管理器 2、 双击要设置的虚拟机 3、 在“查看”菜单中选择“详情” 4、 在“boot options”选项中勾选“start virtual machine on host boot up”选项 5、 单击“应用” 6、 修改/etc/sysconfig/libvirt-guests文件:ON_BOOT=ignore Root密码忘记怎么办: 进入单用户模式,如果RHEL6的selinux开启的话会禁止passwd命令的运行,所以进入单用户模式后在执行passwd更改密码之前必须执行setenforce 0命令禁用selinux功能;然后执行passwd更改密码。最后再启用selinu能功setenforce 1 可以使用命令getenforce查看selinux的状态 查看运行级别:who –r或runlevel 更改运行级别:vi /etc/inittab文件

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档