zoukankan      html  css  js  c++  java
  • Centos入门-3

    1.逻辑卷LVM实现原理:
           |--实现传统硬盘分区不能解决容量拉伸的问题
           |--底层是把物理硬盘分成PE进行管理.
           |--  物理硬盘-->  PV-->  VG--> LV {见图}
    
    
       *.创建使用LVM:
    
            创建LVM:
    
               |-- pvcreate /dev/sdb /dev/sdc
                   vgcreate myvg /dev/sdb /dev/sdc               
                   lvcreate -n mylv -L 2G myvg
                
                   //现在mylv这个逻辑卷路径就是: /dev/myvg/mylv
    
                   挂载文件系统: mkfs.ext4 /dev/myvg/mylv
    
                   现在就可以挂载: mount /dev/myvg/mylv /mnt
                
    
             查看LVM:
               |-- pvdisplay
                   pvs
                   vgdispaly
                   vgs
                   lvdisplay
                   lvs
    
             删除LVM: 
                   *需要注意删除的联动性:删除LV直接删除LV,删除VG必须先删除LV,而删除PV,必须先删除VG*
                    lvremove /dev/myvg/mylv         //删除LV
                    vgremove myvg                   //删除VG
                    pvremove /dev/sdb               //删除PV
    
    
       *.LV的拉伸与缩小:
     
            *拉伸:
    
                |--特点:逻辑卷的拉伸操作可以在线执行,无需卸载。
                   原理:从VG中获取更多PE
    
                |--  vgdisplay                           //保证VG中还有空闲空间
                     lvextend -L  +4G /dev/myvg/mylv     //扩充LV空间
                     lvdisplay
                     df -h                               //查看文件系统             
                     resize2fs /dev/myvg/mylv            //更新下文件系统
                     df -h                               //查看文件系统是否更新可用
    
                |-- 假设我们这个VG不够用了,我们必须:
                    向VG里加PV来扩充VG,进而LV。
    
                    *拉伸一个VG:
                             fdisk -l                 //查看都有哪些硬盘可用
                             pvcreate /dev/sdd
                             vgs
                             vgextend myvg  /dev/sdd
                             vgs
            
             *缩小:
    
                  |-- 特点:LV的缩小必须离线,即卸载,否则数据丢失。
                      原理:把部分PE还给VG
    
                  |-- 顺序:先缩小文件系统,再缩小LV
                   
                      unmount /mnt
                      e2fsck -f /dev/myvg/mylv        //对文件系统进行校验
                      resize2fs /dev/myvg/mylv        //缩小文件系统
                      lvreduce -L -4G /dev/myvg/mylv  //缩小LV
                      lvdisplay                       //查看缩小后的LV
                      mount /dev/myvg/mylv /mnt       //重新挂载
    
                  |--当我们需要撤走一部分硬盘,
      
                     *缩小VG:
                     
                        vgs                      //确保VG的当前空余空间要大于物理硬件的空间大小
                        vgreduce myvg /dev/sdd
                        vgdisplay
                        pvremove /dev/sdd
                   
                             
    
                 
    2.ACL:
    
         |--解决传统UGO模型控制权限的缺陷:不能支持一个文件多用户多组;
        
         |--   mount -o acl /dev/sda5 /mnt            //ACL功能必须在文件挂载时打开
               getfacl linuxcast.net                  //查看文件ACL信息
               setfacl -m u:haoge:rwx linuxcast.net   //添加访问文件的用户
               setfacl -m g:traning:rw linuxcast.net  //添加组
               getfacl linuxcast.net                  //操作完之后查看一下
               setfacl -x u:haoge linuxcast.net       //删除用户
               setfacl -x g:traning linuxcast.net     //删除组
               getfacl linuxcast.net                  //咱们再来查看这个文件一下
               
               /*修改就是重新添加一次*/
    
               *重做笔记1的实例:ACL.png*
                 groupadd training 
                 groupadd market
                 groupadd manage
                 groupad boss
                 useradd -G training nash_su
                 useradd -G training bob
                 useradd -G market alice
                 useradd -G market john
                 useradd -G manage steve
                 useradd -G manage david
                 useradd -G boss snake
    
                 cd /
                 mkdir linuxcast.net
                 ls -ld linuxcast.net
                 cd linuxcast.net
                 mkdir training 
                 mkdir market
                 mkdir manage
                 mkdir boss
                 ls -ld training|market|manage|boss
                 chgrp training training/
                 chgrp market market/
                 chgrp manage manege/
                 chgrp boss boss /
                 ls -ld training|market|manage|boss
                 chmod o-rwx traning
                 chmod o-rwx market
                 chmod o-rwx manage
                 chmod o-rwx boss
                 ls -l
                 chmod g+s training                //让每个部门下的每个用户继承相应部门。
                 chmod g+s market
                 chmod g+s manage
                 chmod g+s boss
                 ls -ld training|market|manage|boss
                 
                 cd training
                 mkdir nash_su
                 chown nash_su nash_su/
                 ls -ld nash_su                    //查看它的O权限,应该默认就是r-x,所以不做修改O第五个要求。
                 mkdir bob
                 chown bob bob/
    
                 cd market 
                 mkdir alice
                 chown alice alice
                 mkdir john 
                 chown john
                 
                 cd manage
                 mkdir steve
                 chown steve steve
                 mkdir david 
                 chown david david
    
                 cd boss
                 mkdir snake
                 chown snake snake
                 setfacl -m g:boss:rx training/
                 setfacl -m g:boss:rx market/
                 setfacl -m g:boss:rx manage
                 getfacl training|market|manage            //查看manage的acl权限是否生效
    
    
    
    3.
    
     RAID:
          |--特点:解决传统硬盘的两个问题:读写IO性能极低,安全稳定性极差(冗余性很差)
                   基于多硬盘并行操作的原理,提高硬盘IO,提高冗余性。
    
          |--DAID0 RAID1 RAID5 RAID6 的各个原理及优缺点:
    
                   |--0:
                         *至少两块硬盘,一个数据分解后存在多块硬盘上,并行读写、
                         *IO性能最佳,冗余性为0,空间利用率最佳。
                         
                    
                   |--1:
                         *两块硬盘,一个数据copy成两份分别存在两块硬盘上,并行读操作,写反倒是要写两份。
                         *IO性能{读等同于RAID0,写效率很低},冗余性高{可以允许一块硬盘挂掉},空间利用率一般。
    
                   |--5:
                         *至少三块硬盘,数据分解写到三块硬盘,然后往第四块上写一个奇偶校验信息{任意知三推一},可恢复丢失数据
                         *IO{读写与RAID0相当},冗余性高{允许一块硬盘挂掉,可"知三恢"复出来},空间利用率一般。
    
                   |--6:
                         *至少四块硬盘,相比较RAID5,多写一份奇偶校验值。
                         *IO,空间利用率接近RAID5,只是冗余性更高{允许两块硬盘挂掉,"知2推二"}
    
    
          |--实际生产中的实现分类:
                 |--硬件RAID:单独安装RAID硬件卡。
    
                 |--软件RAID:{受操作系统稳定性影响,占用CPU等系统资源,受到硬盘接口的很大影响。}
    
                            |--安装RAID软件:
                            |--
                 
                 
    4.
      linux网卡绑定和子接口:
    
              |--网卡高级命令:
                              mil -tool eth0        //查看网卡状态
                              ethtool eth0          //查看网卡物理特性
                              ethtool -i eth0       //查看网卡舞动信息
                              ethtool -S eth0       //查看网卡状态{非常详细}
    
              |--IP别名:
    
                       |--目的:把一块物理网卡配置多个ip,充分利用网卡资源
         
                       |-- 
                          service NetworkManage shutdown  //centos为了方便图形界面用户管理网络,默认使用NM{上方那个电脑图标}
                          chkconfig NetworkManage off        //永久禁用NM
                          ifconfig
                          ip addr add 192.168.1.300/24 dev eth0 label eth0:0|eth0:1
                          ifconfig
    
                          /* ip命令只是临时修改,如果需要永久修改,cd /etc/sysconfig/network-scripts/ 添加配置文件 */
                           cd /etc/sysconfig/network-scripts/
                           vim ifcfg-eth0:0
    
                           DEVICE=eth0:0
                           IPADDR=192.168.1.300         
                           PREFIX=24                   //子网掩码的缩写
                           ONPARENT=yes                //设置父母网卡
                          
    
              |--多网卡绑定:
    
                       |--目的:* 把多块物理网卡并行启动,合并成一块逻辑网卡:提高速度,提高稳定性{冗余性}
                                * 绑定后单独是网卡不再使用,ip地址将绑定在逻辑网卡上:/etc/bond0
                                * 三种模式:0{平衡轮训,提高速度}       1{主动备份,提高冗余性}        3{广播}
    
                       |-- /* 修改某配置文件,记得先关闭相应的服务,否则或报错。 */
    
                             cd /etc/sysconfig/network-scripts/    //首先修改添加一个bond0的配置文件{逻辑网卡}              
                             ls 
                             vim ifcfg-bond0
                             
                             DEVICE=bond0
                             IPADDR=192.168.1.2
                             PREFIX=24
                             ONBOOT=yes                             //开机自启动
                             BOOTPROTO=none
                             USERCTL=no
                             BOND_OPTS="mode=0 mlimon=50"           //向bond0的模块程序传入两个参数。
     
                             cd /etc/sysconfig/network-scripts/     //然后去修改物理网卡的配置文件
                             ifconfig
                             ifdown eth0                            //在修改服务配置文件前,先关掉服务、
                             ifdown eth1
                             vim ifcfg-eth0                      //同理修改 ifcfg-eth1
                             
                             DEVICE=eth0
                             BOOTPROTO=none
                             HWADDR=...                          //mac地址不用修改
                             ONBOOT=yes
                             MASTER=bond0                        //逻辑网卡{主网卡}为bond0
                             SLAVE=yes                           //设置这块网卡为slave{从网卡}
                             USERCTL=no
        
                             cd /etc/modprobe.d/                //为新网卡{bond0}配置模块{windows里的驱动}
                             ls 
                             vim bonding.conf                   //moudle的文件名格式就是XXXing.conf
    
                             alias bond0 bonding                //这句话就是对bond0网卡启用bonding这个模块
    
                             ifup bond0
                             ifconfig
    
                          /*
                            之后可在另外一台机器上ping这个bond0的ip, 
                            然后在配置了bond0的这台机器上观察流量变化:watch -n ifconfig
                            试着把 BOND_OPTS="mode=0 mlimon=50"  的模式改成1,3看看流量变化。   
                          */
                           
    
                           
                                                    
     
    5.selinux:
    
            |--特点:* selinux属于是NSA开发的一种全新的安全机制,属于内核级别的安全策略。
    
                     * 进程和系统资源{文件,socket系统调用}	分别对应着 domain context, 
                       domain限制进程,context限制系统资源。
    					
                     * 策略:selinux通过定义策略来控制哪些进程访问哪些资源。domain-->context
    
                     * centos/rhel 默认有预置策略,无需用户自定义{除非我们自己加入某些自定义服务},它称作target策略,
                       意思是:selinux只会限制target进程:即网络进程。
                       {其他进程不受selinux限制,因为服务器上的安全问题大部分来自网络服务}
    
                     *被限制的常见网络服务有:dhcpd httpd mysqld named ntpd rpcbind squid syslogd
                   
    
            |--selinux的工作模式:
    
                     * enforce{强烈禁止}  permissive{警告}  disable{禁用selinux}
    
                     * 模式配置文件: /ect/sysconfig/selinux        //如果需要永久性修改selinux的某些配置,需要修改配置文件
    
                     * getenforce                //查看当前selinux信息      {不过这两个命令都是暂时的修改}
                       setenforce 0|1            //设置当前selinux工作状态       
    
                     * ps -Z{domain} ls -Z{context}   //查看当前selinux信息
    
           |-- 运维中系统排错:
    
                   *情形:如果用户在运行网络服务的时候,修改了某些文件,引起进程无法访问某些文件,很可能是修改文件导致domain
                           和content不对应,这时候需要ps -Z 或者 ls -Z 分析selinux是不是正常。
                          然后一般我们能够修改的就是恢复文件的content,和修改content.
                          
                          restorecon -R -v 文件路径                                 //恢复文件的content
                          chcon --reference=/etc/named.conf.orig /etc/named.conf    //前一个路径下的文件的content为模板 
                                                      
        
                   *实例:
                          比如用户在home目录下创建了一个index.html,然后启动apache服务,利用mv命令移动到/var/www/html/,
                          发现apache正常启动之后解析不了index.html,我们 ls -Z index.html 和 ls -Z apache.html 
                          {在/var/www/html/创建一个apache.html},发现他们的content不一样。
                          正是因为在家目录下面创建的index.html默认自动继承home对应的content,而mv又并不改变它的content,
                          所以当index.html被移动到/var/www/html/后,apache默认的domain无权限访问home目录下的content,
                          {apache只认自己目录下的文件对应的content},所以我们需要把/var/www/html/下所有的文件的content
                           恢复为apache默认的content。
     
                          restorecon -R -v /var/www/html/
                          /* 之后我们再ls -Z 发现index.html的content变成了apache服务默认的content,
                             而且apache可以解析index.html了 */
    
    
    6.iptables:
     
            |--linux服务器安全需考虑:
    
                           *哪些ip可以访问服务器
                           *可以使用哪些协议
                           *可以使用哪些接口
                           *是否要对数据包进行修改
                           *如果服务器被攻击,这时就需要对某些ip进行禁用
    
            |--linux内核集成了以上这些基本的访问控制功能,由netfilter模块控制。
               而在用户层,我们使用iptables对netfilter进行控制。
    
            |--netfilter:
                        *支持对数据accept drop modify操作.
    
                        *对数据分类方式:
    
                           源ip地址
                           目标ip地址
                           使用接口
                           使用协议      // TCP UDP ICMP等
                           端口号 
                           连接状态      // new ESTABLISHED RELATED INVALID
    
             |--netfilter的基础图解:NetFilter.png NetFilter2.png
    
             |--常用功能:
                        |-- 作为服务器:
    
                        |-- 作为路由:
    
             |--规则:
    
             |--iptables的配置管理:
    
                
    
    
    
    
    7.linux远程管理:
    
            |--基础协议类别:
                          |-- RDP   : windows系统下图形界面使用的远程协议
                          |-- telnet:  几乎所有系统支持的明文传输的协议 {很不安全}
    
                          |-- SSH   : 类linux的CLI界面下支持内容加密的远程管理协议,openssh是实现ssh的一个开源软件。
                          |-- RFB   : 类linux的GUI界面下支持加密内容的远程管理协议,vnc是实现RFB的最常用软件。
    
            |-- SSH:
                   |--特点:
    
                       * 使用非对称算法的秘钥对数据进行加密传输。
                       * SSH协议使用TCP协议,端口号22,开源实现程序是openssh
                       * 分为clinet和server,默认已安装自启动{常驻服务}
    
                   |--使用:
     
                       *默认第一次在两台主机上连接,需要接受公钥,互相验证。
                       * ssh nash_su@192.168.1.100                 //登陆远程主机
                         ssh nash_su@192.168.1.100 ls /            //支持不登陆地执行一个命令
    
                       *其他使用ssh的命令:
    
                         *  scp source destination                        //linux下常用的远程加密传输文件
                            scp linuxcast nash_su@192.168.1.100:/home/    //确保登陆的用户有权限访问目标文件
                            /*  -r 复制文件夹 -p 传输时保留文件的权限及时间戳 -C 传输时进行数据压缩  */
    
                         *  rsync *.* nash_su@192.168.1.100:/home/       //两台机器间的一种增量的同步文件方式,用于备份。
    
            |-- RBF:
     
                    |--服务端:yum install -y tigervnc-server
    
                               cd /etc/sysconfig/                        //vnc的配置文件
                               ls -ld vncservers
                               vim vncservers
                               VNCSERCERS="1:linuxcast 2:nash_su"        //这是指定vnc服务的编号及其对应用户
    
                               su - linuxcast                            //切换到vnc服务对应的用户下创建相应的vncpasswd
                               vncpasswd 
                           
                               service vncserver start                   //启动vnc服务
                                /* 这里注意可能要关闭防火墙或者添加允许策略,实验下就直接关闭:iptables -F */
                               
                             
                    |-- 客户端:
                               |-- centos默认集成了tigervnc,但是未安装,我们在客户机上安装它: 
                                    yum install -y tigervnc 
    
                               |-- 图形界面登陆即可。
                                    vnc server 192.168.1.100:1       
                                // :1指的是我们登陆哪个vnc服务{我们在服务端配置文件里面配置了linuxcast和nash_su两个}
    
    
    8.DHCP服务基础:   
    
            |--基础原理:client DHCPDISCOVER   //client发出discovr
                         server DHCPOFFER      //所有的DHCP全部提供
                         client DHCPREQUEST    //从所有的offer里面选择一个并向该提供服务的server发出request
                         server DHCPACK        //server给client发送packet
    
            |--
    
            |--         
               
                 
    
    
    /**************/
    后面还有三个很重要,记得要学习:mysql    
                                    git
                                    ubuntu
           
                
    
     
    
  • 相关阅读:
    从图片中提取html格式的布局
    javascript语法
    2015 9月2日 工作计划与执行
    2015 9月1日 工作计划与执行
    支付模块结构设计
    ubuntu下的pycharm4中文路径乱码
    2015 8月31 工作计划与执行
    25个git进阶技巧 2015-05-12 16:04 34人阅读 评论(0) 收藏
    Model/View框架总体架构 分类: QT学习实践 2015-05-11 22:05 34人阅读 评论(0) 收藏
    用Dom处理XML文件 分类: QT学习实践 2015-05-11 21:16 30人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/LS1314/p/8604107.html
Copyright © 2011-2022 走看看