分类目录归档:Linux

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之修改网络接口名

由于Linux7中采用了固定的网络接口名的方式,目的是如果网卡损坏可以方便的使用类似新增网卡的方法进行替换,非常简便 但是如果由于某种原因,需要修改网络接口名就很麻烦,例如想修改为以前的eth0的名称。 Linux7中,使用nmtui修改网络连接和IP地址后,可以使用重建加载配置文件的方式使新的配置生效。 需要注意的是,网络接口名称不能通过nmtui来修改(可以修改,但是修改是无效的,会被自动还原为缺省的网络接口名)。 . 下面是通过修改网络配置文件的方法来修改网络设备接口名称的过程(注意,结论是不能用此方法修改): 修改/etc/sysconfig/network-scripts/ifcfg-eth1中的两个地方: DEVICE=eth1 ———-设备名称(device) NAME=eth1 ———-连接名称(connect) 修改后: 修改后重新加载配置文件: 这样只能修改连接的名称,但是不能修改设备名称: 错误:没有找到设备 ‘eth1’。 在Linux7中修改设备名称只能禁用一致和可预测的网络设备命名规则,即,修改grub,还原到Linux6的设备命名方法: 至此,我们看到,不能通过修改配置文件的方法来改变网络接口设备名称。 那么如果一定要在Linux7中将网络设备接口名修改回以前很土的eth0有方法么? 答案是:yes。 . 我们可以通过禁用可命名规则,编辑/etc/default/grub文件来实现。 在该文件的GRUB_CMDLINE_linux=”rhgb quiet”改为GRUB_CMDLINE_LINUX=”net.ifnames=0 biosdevname=0 rhgb quiet” 运行命令grub2-mkconfig -o /boot/grub2/grub.cfg来重新生成grub配置并更新内核参数: 这里我们看到了熟悉的类似Linux6中的UDEV绑定网络设备的方式。 然后,我们reboot后,可以看到,网络接口名已经还原到了以前的样子: 现在,我们再还原回到可预测的网络设备命名网络接口的方法: Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程) Linux7(CentOS,RHEL,OEL)和Oracle … 继续阅读

发表在 Database, Installation and Deinstall, Linux, network | 标签为 , , , , , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之修改IP地址

首先,还是确认NetworkManager服务已经启动(不启动NetworkManager也可以配置IP和connect等等): nmtui的配置和修改会自动更新/etc/sysconfig/network-scripts/下面相关的配置文件: 比如,我们使用nmtui将enp0s9的IP地址修改为192.168.209.15 这时,我们看到,nmtui已经修改了/etc/sysconfig/network-scripts/ifcfg-enp0s9的内容: 但是,此时IP地址还没有修改: [root@lunar1 ~]# ifconfig 我们查看一下名称为enp0s9的网络设备: 看一下当前所有的网络连接: 修改IP后,要使修改后的连接生效,需要重新加载配置文件: 然后重新连接设备enp0s9: 现在IP就修改好了,太方便了: Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–4-target(图形界面和字符界面) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之添加网 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之修改IP地址 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之修改网络接口名 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-8-在Linux7上安装11.2 RAC和12.1 RAC需要禁用哪些服务 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-9-Linux 7.2上的virbr0设备 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-10-ABRT-系统启动后自动检查和报告错误 … 继续阅读

发表在 Database, Installation and Deinstall, Linux, network | 标签为 , , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-7-网络管理之添加网卡

在Linux5和以前的版本,缺省的网络接口名为eth0 eth1 eth[012..]等网络接口名称(NIC)。 这种方法的问题是不能一目了然的知道网卡的物理特性(如 网卡的物理位置),比如这个网卡是那个PCI插槽等等。 . 从Linux6开始,引入了一致和可预测的网络设备命名网络接口的方法(Consistent Network Device Naming)。 这种一致性网络设备命名法根据网卡的物理位置,是否是集成的还是在PCI插槽中来命名,通过这名称,能够很清楚的知道网卡的物理位置 这种方法是依靠biosdevname程序来实现的,它按照一定的规则改变原来的eth[012..]网卡名。 . 这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,无论是否重启机器、过了多少时间、或者改变硬件,其名字都是持久不变的。 但是,这种命名规则并不是默认在Liunx6上开启,因此,在Linux6中,依然可以看到网络接口名称(NIC)缺省还是eth0 eth1 eth[012..]。 但是,在Linux6中,开始使用udev来绑定网卡设备:/etc/udev/rules.d/70-persistent-net.rules。 . 从Linux7开始,一致和可预测的网络设备命名网络接口的方法(Consistent Network Device Naming)已经是缺省配置。 它的优点是: 1,根据这一规则,接口名称被自动基于固件,拓扑结构和位置信息来确定。 2,即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。 . 在Linux7中/etc/udev/rules.d/70-persistent-net.rules 文件没有了,新添加的网卡NetworkManager自动识别设备名称。 它采用命名的规则类似如下: 基于接口类型的两个字母前缀: 名字类型: 例如,在Linux7中,缺省的第一块网卡名称是enp0s3,第二块是enp0s8,第3块是9……以此类推 并且这些网络接口名称缺省是不能改变的(可以使用修改内核来禁用这个新特性的方法,后续文章会陆续介绍)。 这里面就是我们安装vm时,使用的两个网卡,可以看到系统自动的缺省网络设备接口名分别是enp0s3和enp0s8。 这里还有一个virbr0,也是Linux7的新特性,后面的文章会陆续介绍,这里暂不赘述。 . 从上面的解释来看,enp0s3的含义就很清晰了: 在Linux7中,还有很多关于网络管理命令的改变,例如,在Linux7中,使用ip和ss等命令代替了以前的ifconfig route … 继续阅读

发表在 Database, Installation and Deinstall, Linux, network | 标签为 , , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务

测试目的:研究一下Linux7中,如何设置服务的开机自动启动或者不自动启动 当前的OS版本: CRS版本: Linux7使用systemd替换了SysV,Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程并行加载必要的服务。 支持并行化任务 同时采用socket式与D-Bus总线式激活服务; 按需启动守护进程(daemon); 利用 Linux 的 cgroups 监视进程; 支持快照和系统恢复; 维护挂载点和自动挂载点; 各服务间基于依赖关系进行精密控制 . systemd可以创建不同的状态,状态提供了灵活的机制来设置启动时的配置项。 这些状态是由多个unit文件组成的,状态又叫做启动目标(target),unit文件可以控制服务、设备、套接字和挂载点。 systemd配置文件被称为unit单元,使用man systemd可以查看这些unit(单元)的具体定义。 根据类型不同,unit以不同的扩展名结尾。 .service系统服务; .target一组系统服务; .automount自动挂载点; .device能被内核识别的设备; .mount挂载点; .path文件系统的文件或者目录; .scope外部创建的进程; .slice一组分层次管理的系统进程; .snapshot系统服务状态管理; .socket进程间通讯套接字; .swap定义swap文件或者设备; .timer定义定时器。 . 所有可用的unit(单元文件)存放在下面的两个目录下: /etc/systemd/system/ —–优先级更高(这个目录中的内容很少,一般只有十几个) 例如: /usr/lib/systemd/system/ —这个目录是一些Unit的socket,targt等等 … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C | 标签为 , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙

一般安装Oracle,我们会禁用防火墙和SELINUX等一些列服务,并设置开机不自动启动(disable这些服务)。 比如,防火墙,在Linux7以前的命令: service NetworkManager stop service iptables stop service ip6tables stop 还可以使用systemctl查看防火墙服务: 当前防火墙的服务是开启的,并且开机自动启动,开机自动启动时读取/usr/lib/systemd/system/firewalld.service定义文件。 关闭防火墙: 设置开机不自动启动防火墙服务: 这里看到开机不自动启动的本质是在/etc/systemd/system/中删除防火墙服务的定义文件 再次查看防火墙状态: 上述说明防火墙服务已经被安装了,但是没有设置为自动启动。 可以看到,在Linux7中,systemctl disable一个服务,其本质是将该服务的配置文件的link删除。 然后,将该服务实际的配置文件内容修改为开机不启动进程: 其中: 这个表示firewalld.service要先于上面3个服务启动: 下面的设置表示不fork进程,没有pid: 检查iptables和ip6tables: 可以看到当前服务没有启动,且没有安装这个服务: 如果安装的服务会有类似下面的信息: Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–4-target(图形界面和字符界面) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务 Linux7(CentOS,RHEL,OEL)和Oracle … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–4-target(图形界面和字符界面)

systemd可以创建不同的状态,状态提供了灵活的机制来设置启动时的配置项。这些状态是由多个unit文件组成的,状态又叫做启动目标(target)。 unit文件可以控制服务、设备、套接字和挂载点,这些文件存放在下面的两个目录下: /etc/systemd/system/ /usr/lib/systemd/system/ 其中/etc/systemd/system/的优先级更高。 如果需要创建自己的unit,可以修改第一个目录中的文件来进行自定义配置,而第二个目录中的文件是package安装时保存的备份。 比如在Linux7.2(CentOS,RHEL,OEL)12.1.0.2和12.2beta版本的Oracle GI程序就需要自己手工创建ohasd的服务(这是bug),后续文章陆续会讲解到。 目录/etc/systemd/system/目录中只有很少的配置文件,在这里面配置的服务优先级高于配置在/usr/lib/systemd/system/中的服务: 基本target中,只有微码服务: sysinit的目标: 缺省目标: 多用户字符界面的目标(runlevel 3): 而/usr/lib/systemd/system下面定义的unit就太多了: 从Linux7开始,不使用inittab作为启动配置文件,其内容仅仅是个说明: 从上面的说明不难看出,systemd不使用inittab作为配置文件,因此在这里添加的服务将不会生效 systemd使用’targets’代替了runlevels,我们常用的两个targets(启动到图形界面和启动到字符界面): 其中,multi-user.target类似于以前的runlevel 3,也就是字符界面的多用户模式 graphical.target就是以前的runlevel 5,即图形界面模式。 可以使用systemctl get-default来查看缺省的target,也可以使用systemctl set-default来设置缺省的target。 . 查看当前正处在哪个target中: 查看默认target: 也就是当前运行在多用户字符集面的模式。 查看当前所有的运行级别的定义: 这里我们看到了熟悉的 运行级别的身影: 查看当前的正处在哪个target中: 可以看到当前处在runlevel的运行界别类似于以前的level 3 ,即字符界面启动的 我们切换到图形界面启动的运行级别(类似于以前的runlevel 5): 这时候我们可以看到关键字:graphical.target 查看当前缺省的运行级别: … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程)

Linux的系统启动大致有3种主要模式: (1)Linux5和以前的版本:SystemV style的runlevel式启动 (2)Linux6中:以upstart(例如,在ubuntu中)代表的event-based启动方式 (3)Linux7中:以systemd模式并行启动的模式 . 前面两种启动模式的大致都有如下过程: 1,内核引导(内核被载入内存并运行,初始化所有的设备驱动程序和数据结构等) 2,启动/sbin/init,它是一个由内核启动的用户级进程 3,由/sbin/init启动其他用户级的进程或服务(这些进程大多数是各种daemon进程,即各种服务进程),最终完成系统启动的全部过程 所以,init始终是第一个进程,其PID始终为1,它是系统所有进程的父进程. . 第三种方式就是Linux7中采用的sytemd的方式,systemd不通过init脚本来启动,而是采用一种并行启动服务的机制(用缓存机制解决服务的依赖关系)。 这种方式的特点是与 sysvinit 完全兼容、更清晰的服务依赖关系、开机系统初始化服务并行启动、更少的shell开销。 systemd使用 socket 和 D-Bus 来开启服务,提供基于守护进程的按需启动策略 每个服务就是一个 unit,对应于运行级别,systemd有一个 target (multi-user.target)。 . 在Linux4和5中: 在Linux6中: 在Linux7中已经不适用init进程启动了: 这里面的3个“/usr/bin/ssh-agent /etc/X11”进程是Linux7中配置了自动启动VNC。 . 这3种模式的不同在于: 1,SystemV style的runlevel式启动 在Linux5和以前的版本,init进程会读取/etc/inittab的内容,/etc/inittab中包含了很多启动其他用户进程和服务的指令。 因此,/etc/inittab的内容就决定系统进入哪一个runlevel,然后去/etc/rcN.d/(N代表runlevel的数字表示)去找相应的启动脚本。 即: /sbin/init => … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用

测试目的: 熟悉Linux7中修改主机名的机制和hostnamectl工具的使用 测试环境:CentOS Linux release 7.2.1511 (Core) 主机名的配置,在Linux7以下的版本主机名一般是看: 1,配置文件/etc/sysconfig/network 2,命令hosntame 但在Linux7中(这里是CentOS 7.2)中,很多系统管理工具都被替换了,包括主机名的配置。 . Linux7中采用新的配置文件/etc/hostname,替代了Linux7以前(Linux2~Linux6)中使用的/etc/sysconfig/network文件 不过,/etc/sysconfig/network文件还在,只是其内容只剩下一行标注为Linux安装管理程序的“# Created by anaconda”: 这里看到的Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序的名字,其大部分模块用Python编写,有少许的载入模块用C编写。 . 从Linux7开始使用/etc/hostname来管理主机名的配置信息: 在Linux中,有三种定义的主机名: 静态的(static),“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。 瞬态的(transient),“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。 灵活的(pretty)。“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan’s Computer)。 静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。 . 只查看静态、瞬态或灵活主机名,分别使用“–static”,“–transient”或“–pretty”选项。 例如: 但是在Linux7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。 我们看一下hostnamectl的帮助信息: 修改配置文件/etc/hostname,注释掉缺省的第一行,添加我们以前习惯的不带域名的主机名lunar: [root@localhost ~]# 再次查看: 修改完配置文件/etc/hostname后,这里看到我们修改后的信息: Static hostname以前的“localhost.localdomain”变成注释的,也就是/etc/hostname中被注释的一行 Transient … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介

去年开始测试Linux7.1的相关功能,包括CentOS Linux7的安装和OEL的安装 在Linux7.1(8月份已经release的是Linux7.2)上安装Oracle 11.2.0.4 RAC, Oracle 12.1 RAC,Oracle 12.2 beta Standalone等等大量测试。 由于Linux7在架构上改变较Linux6有很大改变,包括系统服务的架构,管理命令集等等 感觉上是几乎是重新学习了一下Linux的一些常用管理方法,就如同Oracle 10.2 RAC到11.2 Grid Infrastructure 的改变一样。 由于比较懒,之前没有总结,一段时间不玩,发现很多生疏了,记忆力不好是硬伤……因此,开始打算逐步总结一下,免得以后用的时候忘记了 :) . Linux7总体感觉启动很快,这个可能跟Linux7采用systemd的管理方式有关系 之前的Linux版本中,使用SysVinit一次一个的串行地启动服务。 系统启动按照/etc/inittab中定义的脚本顺序启动,这种启动服务的方式靠脚本控制,考虑服务之间的依赖关系,因此是顺序执行的 从Linux7开始,采用Systemd并行地启动系统服务进程,系统启动时并行启动多个预先配置的Unit 不同Unit之间的依赖关系使用缓冲的方法,将有依赖关系的服务请求放入队列 待被依赖的服务启动后,该服务继续获取执行,因此可以做到并行执行服务来快速启动。 而且Systemd最初仅启动确实被依赖的那些服务,极大地减少了系统引导的时间。 可以用下面的命令看到系统引导用时: 这里看到,开机时间是31秒左右,可见开机速度之快(关机也同样快)! . systemd命令非常丰富,通过查看help就可以看出来。 比如列出所有正在运行的单元: . 作为一个DBA,从安装开始熟悉一个新成品,然后通过逐步测试官方文档中的各种功能来熟悉产品已经成为习惯。 这就从安装RAC开始说起。 首先是OS的安装,因为考虑后面是为了跑Oracle,因此我选择OEL Linux7. 安装时如果后面不考虑静默安装RAC或者静默安装数据库,那么需要选择“带图形的服务器”(Server with … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , | 一条评论

CPU E5 / E5 v2 / E7 v2的运行超过208天后,热重启后系统异常

昨天朋友(感谢bbq和很多热心朋友)告知一个Linux的bug: E5 / E5 v2 / E7 v2的运行超过208天后,热重启后(比如 shutdown -r),TSC时钟不能被clearout,因此在重启后TSC会继续之前的计数,造成系统异常。 (涉及的Linux内核版本列举在最下面红帽说明中) . 红帽的官方说明: https://access.redhat.com/solutions/433883 . 由于Linux时钟机制引起的bug很多, Linux中有3种timer: 1、Real Time Clock(RTC):RTC是位于CMOS中的 2、Programmalbe Interval Timer(PIT):PIT主要由8254时钟芯片实现的 3、Time Stamp Counter.(TSC):TSC的主体是位于CPU里面的一个64位的TSC寄存器。每个CPU时钟周期其值加一 类似的时间引起宕机的问题很多跟Linux的TSC时钟机制有关系,比如: . 今天看见飞总也在讨论, 具体参见: http://www.xifenfei.com/5760.html . Exadata X5目前没有发现这个问题: Exadata的db node: CPU E5 2699 v3; … 继续阅读

发表在 Linux | 留下评论