首页 文章 精选 留言 我的

精选列表

搜索[centos7],共1048篇文章
优秀的个人博客,低调大师

阿里云CentOS7中安装RocketMQ4.10

RocketMQ4.1.0的安装: Git和GitHub的安装与使用,请参考:http://blog.csdn.net/lichunericli/article/details/78234329 1.RocketMQ源码的获取 cd /usr/local git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git cd incubator-rocketmq 2.maven编译 mvn -Prelease-all -DskipTests clean install -U cd distribution/target/apache-rocketmq/bin Note:注意bin的位置 /usr/local/incubator-rocketmq/distribution/target/apache-rocketmq/bin 3.启动服务器 nohup sh mqnamesrv -n localhost:9876 & tail -f ~/logs/rocketmqlogs/namesrv.log 4.启动broker nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 & tail -f ~/logs/rocketmqlogs/broker.log 5.关闭RcocketMQ相关服务 停止broker服务:sh mqshutdown broker 关闭nameserver服务:sh mqshutdown namesrv Note:以下配置(表示不理解) # 在bin目录下面执行,将服务器地址引入到环境变量中 $ export NAMESRV_ADDR=localhost:9876 $ echo "ROCKETMQ_HOME=`pwd`" >> ~/.bash_profile $ source ~/.bash_profile Note:内存的设置(内存大于8G的不用设置) JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g" runbroker.sh runserver.sh Note:向MQ发送和接收消息(验证失败) # 通过java代码实现的案例生产者生产消息 $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer # 通过java代码实现案例消费者消费消息 $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer # 监控MQ,调用命令监控在target的bin目录下 $ sh mqadmin clusterList -n localhost:9876 异常测试问题: @1:Could not find or load main class org.apache.rocketmq.broker.BrokerStartup或者nameserv 异常原因:maven编译,distribution目录下的bin启动位置和distribution目录下的target下的bin启动位置搞错 @1:No route info of this topic 异常原因:broker启动不成功 @2:connect to <172.17.0.1:10909> failed或者10911等 异常原因: 第一种可能:虚拟机中的网络太多《验证失败》。 rocketMQ在自动识别网络的时候识别错误,可以先把别的网络down掉或者把想用的那个网让它排在前面(没验证过)。ifconfig查看网络发现还有个docker0的网络的ip就是172.17.0.1,因此连接不上。 把docke0的网络断开:broker部署在虚拟机,并且虚拟双网卡同docker冲突 systemctl stop docker ifconfig docker0 down Note:docker服务启动后docker0网络会自动开。 systemctl is-enabled docker #查询是否自启动 systemctl disable docker #禁止自启动 systemctl list-unit-files|grep enabled #查看自启动服务列表 systemctl stop docker #禁止启动 systemctl start docker #开启启动 systemctl status docker 然后在broker.conf中设置brokerip和namesrvAddr,都指定为本机ip后重启《验证失败》。 第二种:setVipChannelEnabled(false)《验证失败》《低版本的不存在这问题,同样未验证》 Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909,若Rocket服务器未启动端口10909,则报connect to <10909> failed。

优秀的个人博客,低调大师

阿里云CentOS7中安装Maven3.5

1.下载Maven3.5 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz 2.解压缩 tar -zxvf apache-maven-3.5.0-bin.tar.gz 3.删除安装包 rm -rf apache-maven-3.5.0-bin.tar.gz 4.位置迁移 mv apache-maven-3.5.0/ /usr/local/maven3.5 5.设置环境变量 vim /etc/profile 在最后添加: MAVEN_HOME=/usr/local/maven3.5 export MAVEN_HOME export PATH=${PATH}:${MAVEN_HOME}/bin 6.执行profile source /etc/profile 7.检查新安装的Maven3.5 mvn -version Note:如果看到版本输出则表示Maven安装成功

优秀的个人博客,低调大师

centos7/rhel7新特性详解(2)

七、链路聚合 NIC teaming,简单的说就是多个物理端口绑定在一起当成一个逻辑端口使用,以便提高带宽,实现负载平衡或高可用的功能。RHEL7里面是通过runner (可以视作一段代码)来实现不同的目的。 配置的基本过程就是配置一个逻辑端口的连接,视作master;然后把需要的物理端口配置成slave 连接,绑定到组。然后把这个逻辑端口分配IP就可以用了 team:高可用性 首先准备两块网卡,它们有不同的MAC地址 创建一个新连接,类型是team连接名称team0。 activebackup表示热备,loadbalance表示负载均衡 master 配置好了,还得配置slave,即将eno16777736和eno33554960两块网卡加入到team0 执行nmcli connection show命令查看team0-1和team0-2的状态 上图可以看出team0-1和team0-2没有连接,执行下列命令连接team0-1和team0-2 执行ifconfig,发现网卡的地址都一样了,这样交换机才能转发包到同一个逻辑端口 最后给team0 分配一个IP地址(也可以直接用图形工具设置IP地址) 测试一下,先看看team0当前状态 关掉eno16777736的连接,自动切换到第二个物理端口了,测试成功 八、rhel7 grub配置文件及排错 RHEL7用了grub2,而不再是grub了 MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束。那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: 1、BIOS自检,检查硬件; 2、激活MBR,MBR上不存在文件系统,可以视作硬件一部分,因此可以被直接读取 3、grub加载到内存,生成一个微系统,微系统内置了精简版的文件系统 4、通过这个微系统,他会去引导分区,比如默认一般是sda1上去找内核文件如vmlinuz,然后再调用grub的配置文件。 grub的主要把他的配置文件放在了3个地方。 /boot/grub2/grub.cfg(/etc/grub2.cfg是/boot/grub2/grub.cfg文件的符号链接) /etc/grub.d/ /etc/default/grub 如下所示。他们的关系是 grub.cfg里面通过 ####BEGIN ##### 这种格式按照顺序调用/etc/grub.d里面的脚本实现不同的功能。grub.d目录里面有很多数字开头的脚本,按照从小到大的顺序执行。以00__header为例,他又会调用 /etc/default/grub 配置文件来实现最基本的开机界面配置 例如:在/etc/grub2.cfg是文件里面调用 /etc/grub.d/10_linux 来配置不同的内核,这里面有2个 menuentry (菜单入口),所以我们开机的时候会看见两个默认选项,一个是普通模式,一个是救援模式 这个是/etc/default/grub 文件。和其他的脚本比较起来,非常简单直观了。后面会举例如何修改 需要注意的是,最好不要直接去修改 /etc/grub2.cfg 文件。这个是因为如果后期升级内核,所有的配置都会失效。如果需要自定义这个文件,我们可以修改对应的脚本或者 /etc/default/grub文件,然后通过 grub2-mkconfig 重新生成grub.cfg文件。 例1:修改启动的等待时间 rhel7默认启动等待时间为5秒,下面将启动时间修改为3秒(注:如果改为-1,那么每次启动时需手动确认才可以) 修改/etc/default/grub文件,如下图所示: 修改之后重新编译生成grub.cfg文件 例2:修改网卡的显示名字,这个前面做网络配置的时候提到过,这里不赘述了。 例3:加密grub 开机界面的时候如果输入e,会打开编辑窗口,我们可以根据需要进入rescue, emergency 或者 shell 模式。如何限制访问。 在/etc/grub.d/00_header 文件末尾,添加以下内容 重新编译生成grub.cfg文件 重启之后输入e,就需要用户和密码才能进入编辑窗口了 以上设置的是明文密码,那如何设置密文口令呢? 加密密码由命令grub2-mkpasswd-pbkdf2生成 在/etc/grub.d/00_header 文件末尾,添加以下内容 cat<<EOF setsuperusers=’用户名’ password_pbkdf2用户名加密密码 EOF 重新编译生成grub.cfg文件 grub2-mkconfig–o/boot/grub2/grub.cfg 重启验证 注:在文本终端模式下,安装并启用gpm后就可复制粘贴了。 在这个编辑窗口,我们可以根据需要进入 rescue,emergency和 shell引导的3种模式。这3种模式对于系统启动排错很有帮助,比如某个服务卡住了无法加载我们可以通过这3种模式来排错。 rescue模式: 在commandline的配置末尾添加s ,类似rhel6之前的单用户模式 按ctrl+x启动 普通模式需要加载的服务很多,但是这个rescue模式加载的就少很多了,输入管理员密码就可以进入了。 emergency模式和rescue模式类似,不过加载的服务更少,把s改成 emergency就行了 那么如果忘记root密码了怎么办? 方法1: 1、重启系统,按e 2、在linux16那行的最尾部加上一下信息 rd.breakconsole=tty0 3、按ctrl+x启动 4、重新挂载文件系统 5、改变根目录 6、修改root密码 7、在根目录下创建相关文件(用于重新标记selinux环境值) 8、退出,系统将会重启 方法2: 在linux16 的最后一行删除 rhgb quiet, 然后添加 init=/bin/sh, 他会用shell替代默认的daemon进程 按ctrl+x启动 挂载文件系统为可写模式,原因很简单,根目录加载的权限是ro,只读,重新加载成 rw的权限。 这个时候就可以修改密码了,执行passwd,按提示修改root密码 如何之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统: 创建这个文件会自动在开启的时候重新做标签即用于重新标记 SELINUX 环境值 运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启 注意:红帽考试时建议使用方法1,方法2在考试环境中以过时了。 开机排错 例1. grub故障:比如把MBR的前446个字节都覆盖了。 系统重启后则出现如下故障现象 开机的时候会自动尝试从本地,光盘和网络加载引导程序(如果光盘、网络等引导失败则会operatiing systemnot found);这里是从我的光盘加载的,因为本地的引导程序已经没有了. 选择troubleshooting (排错) 选择resure a red hat enterprise linux system 选择continue,注意有耐心多等一下,有的时候会卡个10秒才有反应 按照提示,切换根到本机的系统 fdisk -l 看看启动分区是哪个,有星号的就是 重装一下 grub2 到启动分区就可以了 重启就OK了 例2:如果grub引导程序没问题,但是我们把内核文件或者grub.cfg配置文件给删除了怎么办 重启之后,直接进入grub的救援模式,这表明引导程序木有问题,但是引导文件找不到了 和前面一样,光盘启动,切换根目录,挂载一下光盘到光盘挂载点, 顺便看看/boot目录,里面空荡荡的,内核文件和配置文件都没了 解决方法就是重新安装内核,可以用rpm 或者yum,用yum需要先卸载当前的,再安装; rpm可以强行--force覆盖安装。 装完内核之后,重新安装一次 grub2, 输入 grub2-install /dev/sda, 然后重新编译一下grub2就行了 重启系统就可以了。 重启之后,如果遇见以下问题: 问题是开机直接进入命令行模式,即使runlevel显示的是5,手动输入startx一样报错。 解决方式是重新安装图形化界面 yumgrouplist yumgroupinstall'ServerwithGUI' 九、磁盘分区、格式化及LVM管理 RHEL7如何对磁盘进行分区和格式化以及如何配置LVM,与以前版本的RHEL区别不大,可以通过disk工具(在图形桌面中运行)或命令工具(如:fdisk、gdisk、parted)管理硬盘设备。fdisk可以配置MBR格式; gdisk配置gpt格式, parted可以自己选择。 传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序,这个会在后面学习;中间64字节是分区表,每个分区需要16个字节表示,因此主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每个分区的大小无法超过2T。 MBR的最后2个字节是结束符号 GPT格式,打破了MBR的限制,可以设置多达128个分区,分区的大小根据操作系统的不同有所变化,但是都突破了2T空间的限制。支持高达 18EB(1EB=1024PB,1PB=1024TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。 与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘 在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。 GPT的结构如下图: 首先看看当前的硬盘信息 可以在/proc/partitions这个文件查看当前的分区 先试试MBR格式的分区,fdisk选项如下所示 输入n,可以创建新的MBR分区,然后输入p可以显示当前的分区状态 重复n的操作,添加其他分区。 注:MBR格式磁盘最多可以创建4个主分区或3个主分区1个扩展分区,在扩展分区中可以创建若干个逻辑分区。 注意id代表了磁盘的用途,可以通过t来改变 看看分区记录 gdisk和fdisk非常类似 创建新分区的时候可以看见可以有128个分区 parted,和前两个相比,更灵活,可以自行设定MBR或GPT格式和分区 通过mklabel msdos可以设定为MBR格式,然后可以通过mkpart来划分分区 msdos设定为MBR格式,gpt设定为GPT格式 primary代表主分区,extended代表扩展分区,logical代表逻辑分区。 setnumber flag state用于设置分区的用途,flag:boot、lvm、raid。State:on/off表示开启或关闭。 parted工具分完区后无需保存,输入q退出即可。 划分好分区之后,还需要格式化才能使用。可以通过 mkfs/mkswap来格式化文件系统 #mkfs.xfs /dev/分区设备名或#mkfs -txfs /dev/分区设备名 可以修改fstab实现自动加载 测试是否能自动挂载 通过df -h查看已经挂载了的设备 -T选项可以显示设备的文件系统类 有的挂载点路径比较长,自动分2行显示,可以-P强制一行显示 如同进程有pid,用户有uid,每个文件系统也有自己的id,称为uuid,但是不是每个分区都有;如果某个分区没有文件系统,那么这个分区是没有uuid的。 可以通过 blkid(block id)来查看。注意uuid标记的是文件系统,而不是分区。uuid的好处在于可以通过uuid这个唯一值来挂载系统,这样可以避免因为删除硬盘造成的错位,sda6变成了sda5等等 我们可以通过xfs_admin -U 来手动更改文件系统的uuid 附:在目录里面可以通过 ls -ld查看目录的属性,ls -la查看内容的属性,但是-ld显示的目录大小只有4K,这仅仅是目录本身的大小,要想查看目录和其内容的整个大小,可以通过du来查看,如果只想看最终结果,使用-s(summary)就行了 下面我们来看看swap分区如何手动创建。swap类似windows的虚拟内存/page file,当内存不足的时候,数据保存在swap中。 有两种方式可以使用: 第一种单独用一个分区来作为swap 创建一个分区(如:/dev/sdb3),并更改分区ID为82 执行partx –a /dev/sdb命令,使分区修改生效 在分区上创建swap文件系统 修改fstab实现自动加载 第二种方式是创建一个文件块,这个文件所占有的空间作为swap使用 对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小。为了解决这个问题,可以使用LVM(逻辑卷)。基本过程是把物理磁盘或者分区初始化称为物理卷(PV),然后把PV加入VG(卷组),最后在VG上划分逻辑的分区(LVM),LVM可以当做普通的分区进行格式化和挂载。 将准备的磁盘或分区创建PV 可以执行pvdisplay查看PV的详细信息,pvremove删除PV 创建完PV,之后,需要创建VG,然后添加PV到VG中 可以通过vgdisplay查看具体的信息,注意PE的Size是4M,这个是增减的最小计算单位 注:创建VG时:使用–s选项的作用是在创建时指定PE块(物理扩展单元)的大小,默认是4M。 如:# vgcreate volGroup03 -s 8M/dev/sdb[12]) 我们可以继续往vg里面添加新的分区 若事先没有把sdb3转化为pv,而是直接添加到vg里面,不过一旦添加了他自动就初始化成pv了。 可以添加当然也可以减少pv。#vgreduce vg00 /dev/sdb3 VG准备就绪,可以创建了LVM了 注意看他的大小其实是112M,因为PE的大小是4M,这个4M是最小单位,不能破开,因此28个PE就是112M 注:大L可以直接指定大小,小l是指定多少个PE的值 也可以设置剩余空间的百分比 删除逻辑卷#lvremove /dev/vg00/lv01 对已经创建的逻辑卷,可以当做普通分区一样格式化和挂载 修改/etc/fstab文件实现开机自动挂载。 扩展一个逻辑卷,增加300M,首先要确保卷组有大于300M的空闲空间。 执行lvextend扩展逻辑卷大小 注意逻辑卷的文件系统仍然是109M没有改变,我们还需要填充文件系统的空白。 RHEL7可以用xfs_growfs来扩大XFS文件系统,也可以直接用resize2fs 来处理设备 注意的是 XFS系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4了 执行df查看扩展后的文件系统 逻辑卷快照 LVM提供一个极妙的设备,它是snaphot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图LVM 快照通过把文件系统的改变记录到一个快照分区,因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区,所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。 快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面 现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用lvdisplay来查询一下这个逻辑卷 可以看到,这个逻辑卷/dev/vg00/lv00的大小是309M。我们将这个逻辑卷/dev/vg00/lv00挂载到/data下面。复制一些数据到/data里面去。方便等下做试验 现在我们就为逻辑卷/dev/vg00/lv00来做快照 执行lvscan查看创建好的逻辑卷 可以看到/dev/vg00/lv00是原始逻辑卷,而/dev/vg00/lvsp00是快照 执行lvdisplay或lvs命令查看逻辑信息 可以看到逻辑卷快照创建成功了, 注意:这个快照卷建好之后,是不需要格式化也不需要进行挂载的。格式化或挂载都会出现的错误提示的。 模拟将原逻辑卷中的数据删除 如何恢复原逻辑卷的数据?有两方式可以恢复删除的数据 方式一是先将原逻辑卷卸除挂载#umount /dev/vg00/lv00 然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了 方式二可以通过 lvconvert把快照的内容重新写回原有的lvm 先将原逻辑卷卸除挂载#umount /dev/vg00/lv00 执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert--merge /dev/vg00/lvsp00 最后挂载原逻辑卷,查看数据是否恢复成功 注:当我们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,所以可以用快照恢复数据。而当我们在逻辑卷里面添加数据,快照是不会发生改变的,是没有这个文件的。因为快照只会备份当时逻辑卷的一瞬间。 使用ssm(系统存储管理器)进行逻辑管理 逻辑卷管理器(LVM)是一种极其灵活的磁盘管理工具,它让用户可以从多个物理硬驱创建逻辑磁盘卷,并调整大小,根本没有停机时间。最新版本的CentOS/RHEL 7现在随带系统存储管理器(又叫ssm),这是一种统一的命令行界面,由红帽公司开发,用于管理各种各样的存储设备。目前,有三种可供ssm使用的卷管理后端:LVM、Btrfs和Crypt 准备ssm,在CentOS/RHEL7上,你需要首先安装系统存储管理器。可以通过rpm或yum工具安装 首先我们来检查关于可用硬盘和LVM卷的信息。下面这个命令将显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。 #ssm list 在这个例子中,有两个物理设备(“/dev/sda”和“/dev/sdb”)、二个存储池(“rhel和vg00”),以及存储池rhel中创建的两个LVM卷(“dev/rhel/root”和“/dev/rhel/swap”),存储池vg00中创建的一个LVM卷(/dev/vg00/lv00)。 下面来讲解如何通过ssm创建、管理逻辑卷和逻辑卷快照 至少新添加一块磁盘,执行ssm命令显示现有磁盘存储设备、存储池、LVM卷的信息 可以看到有两块空闲磁盘(sdc、sdd) 创建新的LVM池/卷 在这个示例中,不妨看一下如何在物理磁盘驱动器上创建新的存储池和新的LVM卷。如果使用传统的LVM工具,整个过程相当复杂,需要准备分区,需要创建物理卷、卷组、逻辑卷,最后还要建立文件系统。不过,若使用ssm,整个过程一蹴而就! 下面这个命令的作用是,创建一个名为mypool的存储池,创建存储池中名为lv01的500MB大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下。 验证ssm创建的结果 或执行ssm list 将物理磁盘(sdd)添加到LVM池 新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为centos的存储池的大小执行ssm list查看 接下来,我们来扩大现有的LVM卷 扩大LVM卷,不妨将/dev/mypool/lv01卷的大小增加300MB。 如果你在存储池中有额外空间,可以扩大存储池中现有的磁盘卷。为此,使用ssm命令的resize选项 执行ssm list查看扩大后逻辑卷 可以看到逻辑卷扩大到800M,即在原来的基础上增加了300M,但文件系统大小(Fs size)还没有改变,仍然是原来的大小。 为了让文件系统识别增加后的卷大小,你需要“扩大”现有的文件系统本身。有不同的工具可用来扩大现有的文件系统,这取决于你使用哪种文件系统。比如说,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。 在这个例子中,我们使用CentOS 7,XFS文件系统在默认情况下创建。因而,我们使用xfs_growfs来扩大现有的XFS文件系统。 扩大XFS文件系统后,查看结果 或执行#df-hT 可以看到LVM扩展成功 逻辑卷快照 对现有的LVM卷(比如/dev/mypool/lv01)生成快照 一旦快照生成完毕,它将作为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的所有数据 每次原LVM中的数据更改,都可以手动执行ssm snapshot生成快照 当原LVM数据损坏就可以用快照恢复了 方式一是先将原逻辑卷卸除挂载#umount /dev/vg00/lv00 然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了 方式二可以通过 lvconvert把快照的内容重新写回原有的lvm 先将原逻辑卷卸除挂载#umount /dev/vg00/lv00 执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert--merge /dev/vg00/lvsp00 最后挂载原逻辑卷,查看数据是否恢复成功 有磁ssm的具体用法可以参考ssm的帮助手删页 如:删除LVM卷#ssm remove <volume> 删除存储池#ssm remove<pool-name> 十、ISCSI网络存储服务 iscsi实现网络存储,提供存储端叫 target,使用存储端叫 initiator。target 上可以提供存储空间,initiator负责连接ISCSI设备,在ISCSI设备中创建文件系统,以及存取数据,在 initiator 上看上去是多了一块硬盘。 服务器端配置target,准备做为LUN发布的ISCSI的存储设备(可以是一整块磁盘、一个分区、逻辑卷或RAID阵列)。 本人事先准备好两个逻辑卷作为ISCSI的存储设备。 首先安装target 启动服务 设置防火墙 执行targetcli工具 注:输入help可以查看targetcli的帮助 基本思路: 先把准备共享的块做出来,创建一个target,在target上创建lun,一个lun连接一个块 1、创建块即给要发布的逻辑卷起个名字 注:给/dev/vg00/lv00逻辑卷起个名字叫server0.disk1;给/dev/mypool/lv01逻辑卷起个名字叫server0.disk2 查看块如下图所示: 2、创建 iqn 名字即创建ISCSI对象 查看ISCSI对象如下图所示: 3、设置ACL即将ISCSI对象与客户端IP或主机名绑定 注意:iqn.2015-06.com.benet:client1是 initiator 的名字,需要在客户端中设置的。 4、创建LUN并绑定块 一个ISCSI对象可以创建多个LUN(LUN0、LUN1……)。 执行ls查看 启动监听程序 注:172.24.3.5是ISCSI服务端网卡IP 可以查看/etc/target/saveconfig.json配置文件,该配置文件保存着ISCSI的配置。 在initiator端的配置: 1、安装软件 #yuminstall-yiscsi-initiator-utils 2、给 initiator 起个名字 #vim/etc/iscsi/initiatorname.iscsi 内容如下: 3、启动服务 #systemctlenableiscsi;systemctlstartiscsi 4、发现存储 #iscsiadm-mdiscovery-tst-p172.24.3.5 5、登录存储 #iscsiadm-mnode-Tiqn.2015-06.com.benet:disk1-p172.24.3.5-l 注:-l表示连接ISCSI目标;-u表示断开和ISCSI目标的连接 验证客户端ISCSI连接 剩下来的操作就和管理本地磁盘一样了。

优秀的个人博客,低调大师

CentOS7使用阿里源安装最新版Docker

卸载已经安装的Docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine 添加阿里镜像 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 查看可以安装的docker版本 yum list docker-ce --showduplicates 安装18.03.1 sudo yum install docker-ce-18.03.1.ce 启动 Docker systemctl enable docker systemctl start docker 设置Docker阿里云加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 注意:需要替换xxxxx为你的阿里云加速器地址,该加速器地址获取方法可以参考我的另外一篇教程:配置Aliyun Docker加速器

优秀的个人博客,低调大师

centos7添加新网卡实现双IP双网关

问题背景: 业务需要,针对业务需要不同地域的机构访问,所以需要在同一台机器上配置不同IP并配置不同网关,实现不用机构可以访问同一台服务器办理业务。 系统环境: centos linux7 网络环境: 服务器是vmware虚拟服务器,手动添加一块新网卡eth1,要求配置如下。 eth0:10.0.7.2 gw :10.0.7.254 netmask:255.255.255.0 eth1:168.6.101.2 gw :168.6.101.254netmask:255.255.255.0 配置方法: 1、添加新网卡eth1网段是168.6.101.0网段。添加成功后进入系统中,如果使用ifconfig到并不会看到添加网卡内容。 其中eth1是新添加的网卡 手动创建网卡配置文件,通过copy ifcfg-eth0 复制出一份 ifcfg-eth1的副本出来,配置网卡1的时候有两点需要注意一下。 ********UUID=9420c638-16e9-41a1-bf59-325c6f601871 ——需要改成eth1的UUID,查看方法# uuidgen eth1即可得到结果******** ********GATEWAY=10.0.7.254 ——由于同一台机器中新加网卡,原默认网关是eth0的,如果在手动修改eth1的时候添加新的网关会导致冲突,结果就是两个网卡都会断开连接。******** 修改eth1配置文件时: #vim /etc/iproute2/rt_tables/ifcfg-eth1 修改:NAME、DEVICE、UUID、IPADDR、NETMASK 删除:GATEWAY 2、修改完成之后重启网络服务 启动第二块网卡:ifup eth1 重启网络服务: service network restart 验证网卡是否启动:ifconfig查看即可 #以上完成之后并不能实现不同IP访问不同网关,只能实现10网段的地址可以通过网关访问出去,但168网段的地址只能在同一个vlan下的局域网内互相访问。 #原因是我们在修改配置文件的时候,eth0有添加网关内容,eth1并没有设置网关,系统默认使用10.0.7.254 网关,168肯定是不能使用的了。 3、添加编辑路由表 (1)修改vim /etc/iproute2/rt_tables,添加内容: 252 1 251 2 (2)#命令行执行下列命令,添加原路返回路由——此处注意在命令行执行下列命令是临时生效。 ip route flush table 1 ip route add default via 10.0.7.254 dev eth0 src 10.0.7.2 table 1 ip rule add from 10.0.7.2 table 1 ip route flush table 2 ip route add default via 168.6.101.254dev eth1 src 168.6.101.2 table 2 ip rule add from 168.6.101.2 table 2 4. 将添加以上命令时建议添加到/etc/rc.d/init.d/network文件的后面,保证机器重启开机自动运行。 4、可以验证效果了

优秀的个人博客,低调大师

解决centos7 docker1.9 没有配置文件

如果没有/etc/sysconfig/docker这个配置文件 1.vim /lib/systemd/system/docker.service [Unit] Description=DockerApplicationContainerEngine Documentation=https://docs.docker.com After=network.targetdocker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/etc/sysconfig/docker ExecStart=/usr/bin/docker-d$OPTIONS-Hfd:// LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity MountFlags=slave [Install] WantedBy=multi-user.target 2.vim /etc/sysconfig/docker #/etc/sysconfig/docker #Modifytheseoptionsifyouwanttochangethewaythedockerdaemonruns OPTIONS='-Htcp://0.0.0.0:4243-Hunix:///var/run/docker.sock' DOCKER_CERT_PATH=/etc/docker #Ifyouwanttoaddyourownregistrytobeusedfordockersearchanddocker #pullusetheADD_REGISTRYoptiontolistasetofregistries,eachprepended #with--add-registryflag.Thefirstregistryaddedwillbethefirstregistry #searched. #ADD_REGISTRY='--add-registryregistry.access.redhat.com' #Ifyouwanttoblockregistriesfrombeingused,uncommenttheBLOCK_REGISTRY #optionandgiveitasetofregistries,eachprependedwith--block-registry #flag.Forexampleaddingdocker.iowillstopusersfromdownloadingimages #fromdocker.io #BLOCK_REGISTRY='--block-registry' #Ifyouhavearegistrysecuredwithhttpsbutdonothavepropercerts #distributed,youcantelldockertonotlookforfullauthorizationby #addingtheregistrytotheINSECURE_REGISTRYlineanduncommentingit. INSECURE_REGISTRY='--insecure-registrydl.dockerpool.com:5000' #OnanSELinuxsystem,ifyouremovethe--selinux-enabledoption,you #alsoneedtoturnonthedocker_transition_unconfinedboolean. #setsebool-Pdocker_transition_unconfined1 #Locationusedfortemporaryfiles,suchasthosecreatedby #dockerloadandbuildoperations.Defaultis/var/lib/docker/tmp #Canbeoverridenbysettingthefollowingenvironmentvariable. #DOCKER_TMPDIR=/var/tmp #Controlsthe/etc/cron.daily/docker-logrotatecronjobstatus. #Todisable,uncommentthelinebelow. #LOGROTATE=false 3.重启docker systemctldaemon-reload systemctlrestartdocker

优秀的个人博客,低调大师

centos7安装搜狗拼音输入法

下载64位的ubuntu 64bit的安装包,提取其中的data.tar.gz 然后安装fcitx输入法基础环境 配置用户目录下的.bashrc即可 原文: 链接: http://blog.csdn.net/yang1982_0907/article/details/17100409 1. 卸载iBus yum remove ibus 2. 将RHEL 6.4的软件源更换为CentOS 6.4的软件源 参考博文:http://blog.csdn.net/yang1982_0907/article/details/17022983 3. 添加fcitx软件源 wget http://download.opensuse.org/repositories/home:/cathay4t:/misc-rhel6/CentOS_CentOS-6/home:cathay4t:misc-rhel6.repo -O /etc/yum.repos.d/fcitx.repo 4. 安装fcitx yum install fcitx 安装完成后,运行fcitx -v,可以看到此处安装的fcitx版本为4.2.6.1 5.升级和修改gtk.immodules /usr/bin/gtk-query-immodules-2.0-32 > /etc/gtk-2.0/i686-redhat-linux-gnu/gtk.immodules vi /etc/gtk-2.0/i686-redhat-linux-gnu/gtk.immodules 添加如下几行: "/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so" "xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:th:zh" 6.新建配置文件 vi /etc/X11/xinit/xinput.d/fcitx.conf 添加以下内容: XIM=fcitx XIM_PROGRAM=/usr/bin/fcitx XIM_ARGS=”-d” GTK_IM_MODULE=fcitx QT_IM_MODULE =fcitx 7.建立到fcitx.conf的链接 mv /etc/alternatives/xinputrc{,.bak} #备份配置文件 ln -s /etc/X11/xinit/xinput.d/fcitx.conf /etc/alternatives/xinputrc 8. 启用fcitx输入法 编辑~/.bashrc文件 vi~/.bashrc 添加以下几行: export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=xim export QT_IM_MODULE=xim 然后,在操作系统的GUI上进行如下操作: System -> Preferences -> Input Method 此时会弹出“IM Chooser”窗口,勾选“Enable input method feature”,然后点击“Log Out”按钮,注销后重新登录 9.从deepin的搜狐源中下载搜狗拼音的deb包 http://mirror.sohu.com/deepin/pool/non-free/f/fcitx-sogoupinyin-release/ 此处下载fcitx-sogoupinyin_0.0.4-1_i386.deb,放在/root/Downloads/目录下 10. 安装搜狗拼音输入法 双击fcitx-sogoupinyin_0.0.4-1_i386.deb,找到data.tar.gz文件,将其提取至/root/Downloads/目录下,然后运行以下命令: cd /root/Downloads/ tar -xvzf data.tar.gz -C / 然后,将搜狗拼音插件移动到CentOS发行版中的相应位置,运行以下命令: mv /usr/lib/i386-linux-gnu/fcitx/fcitx-sogoupinyin.so /usr/lib/fcitx/ 注销后重新登录,此时搜狗拼音应该已经可以用了 11. 从deepin的搜狐源中下载搜狗拼音默认皮肤 http://mirror.sohu.com/deepin/pool/main/f/fcitx-skins/ 此处下载fcitx-skin-sogou_0.0.3_all.deb,放在/root/Downloads/目录下 12. 安装搜狗拼音默认皮肤 双击fcitx-skin-sogou_0.0.3_all.deb,找到data.tar.gz文件,将其提取至/root/Downloads/skin/目录下,然后运行以下命令: cd /root/Downloads/skin/ tar -xvzf data.tar.gz -C / 13. 禁用其他不用的输入法 vi /usr/share/fcitx/addon/fcitx-pinyin.conf # 拼音和双拼的配置文件 vi /usr/share/fcitx/addon/fcitx-table.conf # 五笔和五笔拼音的配置文件 在这两个配置文件中找到“Enabled”项,改为“False”即可关闭这四个输入法 重启fcitx即可生效 14. 设置搜狗拼音的每页候选词数 vi~/.config/fcitx/config 找到“CandidateWordNumber”,将数字改为“10” 重启fcitx即可生效 测试环境: VMware Workstation9.0.0 build-812388 RHEL 6.4 PS:64位的RHEL 6.4也可以按照以上步骤安装搜狗拼音输入法,只要修改一些步骤中的路径即可,CentOS 6.4也可以参考以上步骤。

优秀的个人博客,低调大师

CentOS7磁盘分区(概念、分区方法、分区方案)

1磁盘分区相关的概念 1.1什么是磁盘 磁盘就是计算机的外部存储器设备,即将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失。简单地讲,就是一种计算机信息载体,也可以反复地被改写。磁盘有软盘和硬盘之分: 1.1.1软盘(Floppy Disk) 软盘是个人计算机(PC)中最早使用的可移介质。软盘的读写是通过软盘驱动器完成的。软盘驱动器设计能接收可移动式软盘,目前常用的就是容量为1.44MB的3.5英寸软盘。软盘存取速度慢,容量也小,但可装可卸、携带方便。作为一种可移贮存方法,它是用于那些需要被物理移动的小文件的理想选择。 1.1.2硬盘 硬盘是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。我们这里提到的磁盘分区中的磁盘指的就是硬盘。 1.2硬盘的接口类型 硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。从整体的角度上,硬盘接口分为IDE、SATA、SCSI、光纤通道和SAS五种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是种新生的硬盘接口类型,还正处于市场普及阶段,在家用市场中有着广泛的前景。 1.2.1IDE IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。IDE代表着硬盘的一种类型,但在实际的应用中,人们也习惯用IDE来称呼最早出现IDE类型硬盘ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都属于IDE硬盘。 1.2.2SATA 使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来和现在PC机硬盘的主流趋势。2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,2002年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。 1.2.3SCSI SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口),是同IDE(ATA)完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。 1.2.4光纤通道 光纤通道的英文拼写是Fibre Channel,和SCSI接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。光纤通道是为在像服务器这样的多硬盘系统环境而设计,能满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对高数据传输率的要求。 1.2.5SAS SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。 1.3什么是磁盘分区 磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。越多分区,也就有更多不同的地方,可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件;但太多分区就成了麻烦。空间管理、访问许可与目录搜索的方式,依属于安装在分区上的文件系统。当改变大小的能力依属于安装在分区上的文件系统时,需要谨慎地考虑分区的大小。 在一个MBR分区表类型的硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。如果使用扩展分区,那么一个物理硬盘上最多只能3个主分区和1个扩展分区。扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。一个扩展分区中的逻辑分区可以任意多个。(MBR的概念将在后面的文章中介绍) 1.4分区类型 硬盘分区之后,会形成3种形式的分区状态;即主分区、扩展分区和非DOS分区。 1.4.1非DOS分区 在硬盘中非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,对主分区的操作系统来讲,是一块被划分出去的存储空间。只有非DOS分区的操作系统才能管理和使用这块存储区域。 1.4.2主分区 主分区则是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软驱或光驱引导之后可对硬盘进行读写。 1.4.3扩展分区 扩展分区严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。 1.5分区格式 磁盘分区后,必须经过格式化才能够正式使用,格式化后常见的磁盘格式有:FAT(FAT16)、FAT32、NTFS、ext2、ext3等。 1.5.1FAT16 这是MS-DOS和最早期的Win95操作系统中最常见的磁盘分区格式。它采用16位的文件分配表,能支持最大为2GB的硬盘,是目前应用最为广泛和获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从DOS、Win95、Win97到Win98、Windows NT、Win2000,甚至火爆一时的L inux都支持这种分区格式。但是在FAT16分区格式中,它有一个最大的缺点:磁盘利用效率低。因为在DOS和Wi ndows系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一个文件很小的话,它也要占用了一个簇,剩余的空间便全部闲置在那里,形成了磁盘空间的浪费。由于分区表容量的限制,FAT16支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。所以为了解决这个问题,微软公司在Win97中推出了一种全新的磁盘分区格式FAT32。 1.5.2FAT32 这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了FAT16对每一个分区的容量只有2 GB的限制。由于硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大硬盘定义成一个分区而不必分为几个分区使用,大大方便了对磁盘的管理。而且,FAT32具有一个最大的优点:在一个不超过8GB的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少磁盘的浪费,提高磁盘利用率。支持这一磁盘分区格式的操作系统有Win97、Win98和Win2000。但是,这种分区格式也有它的缺点,首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢。另外,由于DOS不支持这种分区格式,所以采用这种分区格式后,就无法再使用DOS系统。 1.5.3NTFS 它的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片。它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。支持这种分区格式的操作系统已经很多,从 Windows NT 和 Windows 2000 直至 Windows Vista 及 Windows 7,Windows 8。 1.5.4ext2、ext3 ext2,ext3是linux操作系统适用的磁盘格式,Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。 linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。 对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。 Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定。但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统是非日志文件系统。这在关键行业的应用是一个致命的弱点。 Ext3文件系统是直接从Ext2文件系统发展而来,ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是ext3日志文件系统初始设计的初衷。 2磁盘分区方法 2.1用fdisk命令在Linux下进行分区 参考网址:http://jingyan.baidu.com/album/359911f54efb6557fe03060f.html?picindex=4 2.2用图形界面方式在安装CentOS时进行分区 http://wenku.baidu.com/linkurl=JkCO2ccsB2AqelPmuGomOlO33kHBQfNHhVHeSdM1JvtJVZG4zMUO314xoxFRmyOntrfSGNk7neXAE4qaLZhxzAUQuUSCQEB28KJ1hGj3fm 3磁盘分区方案 3.1硬盘分区的各个分区的意义 尽管可以根据我们已经提到的分区原则,Linux 装在一个单一的大分区中,但更好的主意是将它分开。综合了单一分区的简单性和多分区的灵活性,我们推荐以下配置。请注意:如果你想安装Linux 的所有软件包的话,必须使用这里指出的较大的分区尺寸。事实上,你可能会加大我们推荐的尺寸,以使将来升级时不必重新分区。 1) 一个交换(swap)分区。交换分区用来支持虚拟内存。如果你的计算机内存小于16MB,必须创建交换分区。即使你有更多的内存,仍然推荐使用交换分区。交换分区的最小尺寸是你的内存的大小,16MB(两者取大)。交换分区最大可以达到127 MB ,所以创建更大的交换分区是浪费空间。注意,可以创建和使用一个以上的交换分区(尽管这通常安装在大的服务器上)。 2) 一个根(root)分区。根分区是”/”(根目录)所在地(注意不是/root)。它只需要启动系统所须的文件和系统配置文件。对于大多数系统,50MB 到100M B 的根分区可以工作得很好。 3) 一个/usr 分区。/usr是Linux 系统的许多软件所在的地方。根据你交换安装的包的数量,这个分区应该在300MB到700MB之间。如果可能,将最大的空间用于/usr分区。任何你以后将要安装的基于RPM 的包都会使用比其他分区更多的/usr空间。 4) 一个/home分区。这是用户的home目录所在地; 它的大小取决于你的Linux 系统有多少用户,以及这些用户将存放多少数据。如果系统将用作E-mail服务的话,为每一位用户预留5MB左右的空间,如果将提供个人主页存放空间的话,则应至少为每位用户预留20MB空间。对于网站建设者,还有一点需要注意的是,你的Web 服务和匿名Ftp/home/ftp)服务器的内容也在这里! 另外,你的环境可能会要求你创建一个和多个以下的分区: 1) 一个/usr/local 分区。一般/user/local用来存放与其余Linux 系统不同的软件,如不是RPM包的软件。它的尺寸取决于你准备存放的这些软件的数量。 2) 一个/usr/src分区。在一个Linux 系统中,/usr/src通常存放两样东西: 一是Linux 内核源程序。内核的所有源程序都放在这里,新的内核也在这里创建。目前,内核源程序大概有30MB 。记住,你可能需要更多的空间来创建内核,或者保存几个不同版本的内核。 二是RPM包的源程序。如果安装了包的源程序,文件将存放在这里。注意,除非特别指定,创建包也将使用在这里的一个’创建目录’。同样,这个分区的尺寸也取决于你将在这里安装的软件的数量。 3) 一个/tmp分区。就像它的名字,/tmp分区用来存放临时文件。对于一个大型的,多用户的系统或者网络服务器,专门创建一个/tmp 分区是一个好主意。对于一个单用户的工作站,就不必专门创建一个/tmp分区了。 4) 一个/var分区。你的Linux 系统将把日志写在/var/log。打印队列的文件通常写在/var/spool 。这只是两个写在/var的例子。除非特别配置,/var将是根文件系统的一部分,通常不占很多空间。如果你的系统有很多打印、邮件、或者日志,可以考虑专门创建一个/var分区。一般来讲,只有多用户或者服务器才需要专门的/var分区。 5) 一个/boot分区。这里提到的分区多数是针对大的系统,这个分区则对空间很少的小的系统很有用。所有LILO 启动时需要的文件都在/boot目录。因此最好的办法就是专门为根文件分一个区,大小至多64MB,最好首先分这个区,然后再分/usr等等。 3.2场景:linux系统的硬盘空间为500G 要求实现如下的linux分区:/var分区一定要大(不论postfix邮件,还是LAMP的WEB 服务器等)。最好是400G以上。具体的/boot 只要100M就足够了。 3.2.1Linux服务器分区的方案: 分区类型 分区的实际大小 / 1G-2G (最少要150–250MB) /boot 32M-100M (启动分区,最多只要100M左右) /opt 100M-1G (附加应用程序) /tmp 40M-1000M (最大可以设为1G左右,如果加载ISO镜像文件就设为4G左右吧,一般不用那么多) /home 2G-10G (每个用户100M左右,具体自定。用户目录。) /usr 3G-10G 最少要500M左右,一般宽松的服务器要分到4-6G) /usr/local 3G-15G (自已安装程序安装在此) /var >2G–硬盘余下全部空间 ( 最少300M-500M,一般2-3G,做服务器的话把上面余下的空间都分给它) 3.2.2Linux桌面分区方案 分区类型 分区的实际大小 / 1G /boot 32M /opt 100M /tmp 50M /home 1G-10G /usr 3G-6G /usr/local 3G-5G /var 500M以上 3.2.3最节省的分区方案(服务器不推荐) 文件目录 最少 一般 安装后大小(CentOS5.2) / 150M-250M 500M-2G (378M) /boot 32M-100M 64M (13M) /opt 30M-100M 50M (19M) /tmp 40-100M 50M (37M) /home 100M-5G 1G (483M) /usr >500M 4-6G 2.5G(2.0G) /usr/local500M 2-5G 2G(1.2G) /var 300-500M 2-3G 500M(296M) 3.3其他的分区方案 参考网址:http://jingyan.baidu.com/article/fedf07375b0d5c35ac8977f0.html

优秀的个人博客,低调大师

centos7安装配置ELK(Elasticsearch+Logstash+Kibana)

1.server端安装 #安装elasticsearch yum install java-1.8.0-openjdk ruby yum install elasticsearch-2.1.0.rpm vi/etc/elasticsearch/elasticsearch.yml # cluster.name: my-application cluster.name: wc # network.host: 192.168.0.1 network.host: 127.0.0.1 systemctl start elasticsearch rpm -qc elasticsearch curl -X GEThttp://localhost:9200/ vi/etc/nginx/conf.d/elasticsearch.conf server { listen 80; server_name 110.110.110.110;: location / { proxy_pass http://110.110.110.110:9200; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 浏览器输入http://110.110.110.110:9200/ #安装redis yum install redis mkdir -p /opt/redis cd /opt/redis mkdir {db,log,etc} redis-server /etc/redis.conf & 启动默认的redis配置文件 #安装kibana tar -zxvf kibana-5.0.0-snapshot-linux-x64.tar.gz mv kibana-5.0.0-snapshot-linux-x64 kibana cp -R kibana /opt/ vi /etc/systemd/system/kibana.service [Service] ExecStart=/opt/kibana/bin/kibana [Install] WantedBy=multi-user.target systemctl start kibana systemctl enable kibana systemctl status kibana http://IP:5601 报错1:Unable to connect to Elasticsearch at http://localhost:9200. Retrying in 2.5 seconds 解决1: vi/etc/elasticsearch/elasticsearch.yml network.host: 127.0.0.1 报错2:No existing Kibana index found 解决2: 报错3:Warning No default index pattern. You must select or create one to continue. 解决3: #安装logstash yum install logstash-2.1.0-1.noarch.rpm cd /etc/pki/tls openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt vi /etc/logstash/conf.d/logstasg-hello.conf input { lumberjack { # The port to listen on port => 5000 # The paths to your ssl cert and key ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" type => "this forwarder's file have no type!" } } filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } syslog_pri { } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } } output { elasticsearch { host => localhost } stdout { codec => rubydebug } } /opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash-hello.conf #安装lnmp环境 yum install nginx php vi /etc/nginx/conf.d/logstash.conf server { listen 80; server_name IP; location / { proxy_pass http://localhost:5601; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } systemctl start nginx 2.client端安装 3.elasticsearch配置文件详解 cat /etc/elasticsearch里的logging.yml用默认配置,elasticsearch.yml配置如下: cluster.name: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 node.name: "Franz Kafka" 节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。 node.master: true 指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 node.data: true 指定该节点是否存储索引数据,默认为true。 index.number_of_shards: 5 设置默认索引分片个数,默认为5片。 index.number_of_replicas: 1 设置默认索引副本个数,默认为1个副本。 path.conf: /path/to/conf 设置配置文件的存储路径,默认是es根目录下的config文件夹。 path.data: /path/to/data 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例: path.data: /path/to/data1,/path/to/data2 path.work: /path/to/work 设置临时文件的存储路径,默认是es根目录下的work文件夹。 path.logs: /path/to/logs 设置日志文件的存储路径,默认是es根目录下的logs文件夹 path.plugins: /path/to/plugins 设置插件的存放路径,默认是es根目录下的plugins文件夹 bootstrap.mlockall: true 设置为true来锁住内存。因为当jvm开始swapping时es的效率 会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。 同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过`ulimit -l unlimited`命令。 network.bind_host: 192.168.0.1 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。 network.publish_host: 192.168.0.1 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。 network.host: 192.168.0.1 这个参数是用来同时设置bind_host和publish_host上面两个参数。 transport.tcp.port: 9300 设置节点间交互的tcp端口,默认是9300。 transport.tcp.compress: true 设置是否压缩tcp传输时的数据,默认为false,不压缩。 http.port: 9200 设置对外服务的http端口,默认为9200。 http.max_content_length: 100mb 设置内容的最大容量,默认100mb http.enabled: false 是否使用http协议对外提供服务,默认为true,开启。 gateway.type: local gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。 gateway.recover_after_nodes: 1 设置集群中N个节点启动时进行数据恢复,默认为1。 gateway.recover_after_time: 5m 设置初始化数据恢复进程的超时时间,默认是5分钟。 gateway.expected_nodes: 2 设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。 cluster.routing.allocation.node_initial_primaries_recoveries: 4 初始化数据恢复时,并发恢复线程的个数,默认为4。 cluster.routing.allocation.node_concurrent_recoveries: 2 添加删除节点或负载均衡时并发恢复线程的个数,默认为4。 indices.recovery.max_size_per_sec: 0 设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。 indices.recovery.concurrent_streams: 5 设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。 discovery.zen.minimum_master_nodes: 1 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4) discovery.zen.ping.timeout: 3s 设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。 discovery.zen.ping.multicast.enabled: false 设置是否打开多播发现节点,默认是true。 discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"] 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。 下面是一些查询时的慢日志参数设置 index.search.slowlog.level: TRACE index.search.slowlog.threshold.query.warn: 10s index.search.slowlog.threshold.query.info: 5s index.search.slowlog.threshold.query.debug: 2s index.search.slowlog.threshold.query.trace: 500ms index.search.slowlog.threshold.fetch.warn: 1s index.search.slowlog.threshold.fetch.info: 800ms index.search.slowlog.threshold.fetch.debug:500ms index.search.slowlog.threshold.fetch.trace: 200ms 本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1718601,如需转载请自行联系原作者

优秀的个人博客,低调大师

设置Centos7使用阿里云镜像的yum源

1. 备份原来的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载阿里云的CentOS-Base.repo 到/etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 执行结果如下图: 3. 清理缓存 sudo yum clean all 执行结果: 4. 生成新的缓存 sudo yum makecache 执行结果:

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。