分类目录归档:体系架构

Exadata上CPU相关的设置(感觉已经很好了,除了irqbalance)

有些情况下,Exadata上我们发现有IO降级的情况,但是检查磁盘和flashcard都没有损坏。 这时候,可能需要检查一下APIC timer功能是否正常(APIC timer没有正确开启可能导致iostat报告的吞吐量有降级的现象) 当发生这类问题时,可以对比vmstat的bi/bo(读和写的平均吞吐量),因为vmstat命令不受APIC timer的影响。 . APIC Timer(Advanced Programmable Interrupt Controller)是一种时钟中断设备,即 高级可编程中断控制器 CPU通过彼此发送中断来完成它们之间的通信,APIC 就是通过编程触发lapic设备周期产生中断,然后注入到vcpu。 2000年以后的CPU都支持,这是Intel多处理规范的核心。 APIC Timer的模式APIC定时器包含3种定时器模式: 周期触发periodic 一次性触发one-shot TSC-Deadline模式(最新的CPU里面支持)。 . 老版本的Exadata可以检查 dmesg|grep “Using local APIC timer interrupts”,来确认APIC timer是否正确开启。 新版本的Exadata可以检查 dmesg|grep “Using IOAPIC for interrupt routing”,来确认APIC timer是否正确开启。 . 例如,下面显示在这个1/4配置的Exadata … 继续阅读

发表在 体系架构 | 标签为 , , , | 留下评论

Exadata上网卡参数的优化(主要是IB的MTU不同于一般值)

对比了一下普通主机和Exadata,发现主要的区别在于组播的配置,这个跟Exadata上使用IB的整个网络环境有关系(Infiniband card,IB Switch等等): MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。 最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等),MTU也不是越大越好,因为MTU越大,传送一个数据包的延迟也越大;并且MTU越大,数据包中 bit位发生错误的概率也越大。因此,需要针对网络來进行最佳化。 MTU的单位是字节。一般来说,如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。 把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。 一般普通的机器缺省配置组播是缺省值1500,这个跟以太网的帧的设计有关系。 以前,Ethernet一般把数据分割为一定大小的帧(frame)的单位来进行传送接收,但在规格上帧的尺寸被定为1,518字节。 但是随着通讯器材的发展,现在的万兆网等都支持大帧(jumbo frames),帧的尺寸根据机器各种各样,大部分对应9,000~16,000字节左右。 . . 要修改MTU的方法很简单(尽管很多人在RAC环境不正确的修改这个值导致了很多问题): ifconfig eth0 mtu xxxx(你需要设置的值),比如: ifconfig eth0 mtu 9000 修改后,使用 netstat -i 或者ifconfig |grep MTU来查看既可以。 目前,Oracle支持在私有网络(interconnect)使用超过1500的组播(具体设置也要根据前面说的,看环境,不是越大越好。通常没有好的设计,一般不改)。 . . 对于多播(MULTICAST),RAC要求必须开启,这个在Oracle官方的最佳实践中有明确说明: 对于多播的检测,Oracle也提供了详细的方法: 类似下面的,就是多播检测失败的情况: . 关于组播,在普通环境(非Exadata)有一些注意事项: 1,一般就采用缺省的1500,如果超过这个值,需要特殊的配置,具体请参考: … 继续阅读

发表在 体系架构 | 标签为 , , | 留下评论

Exadata上的Writeback和Writethrouth-4-X3和X4上的Flash Card

从X3开始采用 Flash Accelerator F40 400GB Solid State Memory ,每个cell上有4块F40卡,每个卡上有4个100GB的FDOM(每个F40的容量为4*100GB=400GB),这样,每个cell的总Flash容量为1.6T。可见从容量上已经突飞猛进了。 这里,我们再回来思考上一篇《Exadata上的Writeback和Writethrouth-4-V2和X2上的Flash Card》中提到的一个问题:是否可以将Exadata上的Flash Card作为ASM disk使用? Exadata上的Writeback和Writethrouth-4-X3和X4上的Flash Card

发表在 FAQ, 体系架构 | 标签为 , , , | 留下评论

Exadata上的Writeback和Writethrouth-3-V2和X2上的Flash Card

从V2和X2的机器上硬件带有4块写缓存功能Sun Flash Accelerator F20 PCIe Card卡,每个F20上有4个FMOD模块,每个FMOD模块是24G(每个F20为24*4=96GB容量)。因此V2和X2的每台存储服务器上可以支持4*96GB=384GB的缓存,如图: Exadata上的Writeback和Writethrouth-3-V2和X2上的Flash Card

发表在 FAQ, 体系架构 | 标签为 , , , | 留下评论

Exadata上的Writeback和Writethrouth-2-SSD篇

在了解Exadata上的Flash Card的使用方式之前,我也先给自己科普了一下SSD的相关知识,具体如下: SSD,也就是我们常说的固态硬盘(Solid State Disk),他是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成,好一点的还可以多一个缓存芯片。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。 从发展实践来看,1970年,StorageTek公司(Sun StorageTek)开发了第一个固态硬盘驱动器。1989年,世界上第一款固态硬盘出现。 固态硬盘(Solid State Drives),是用固态电子存储芯片阵列而制成的硬盘,其芯片的工作温度范围很宽,商规产品(0~70℃)工规产品(-40~85℃)。这些指标都的使用范围都远超过硬盘的工作规范,因此,我们常说固态盘适应的环境更多…… Exadata上的Writeback和Writethrouth-2-SSD篇

发表在 FAQ, 体系架构 | 标签为 , , | 留下评论

Exadata上的Writeback和Writethrouth-1-硬盘篇

以前写过一些关于Exadata上磁盘管理相关的文章: Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息 Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念 Exadata的磁盘自动管理-3-磁盘自动管理的操作规则 如何看待exadata的cell节点出现的writethrough/wirteback模式更换或者控制器充放电信息 Exadata更换硬盘的操作过程和解释 今天偶然间看见一段alert的信息,这是Exadata上Disk Controller BBU充放电的相关信息,具体解释请参见《如何看待exadata的cell节点出现的writethrough/wirteback模式更换或者控制器充放电信息》: 联想到Exadata上Flash Card的“Writeback和Writethrough”功能的变迁,以及目前为什么社会上各家一体机的架构(我所了解的大一点的Oracle运维三方基本都有了,没有的也在研发中了,只有一些目前宣称只做软件的三方还没做一体机,O(∩_∩)O哈哈~),忽然间想更多的了解下各种硬盘和SSD的发展历程,于是就开始给自己扫盲…………………… Exadata上的Writeback和Writethrouth-1-硬盘篇

发表在 FAQ, 体系架构 | 标签为 , | 留下评论

Exadata的数据保护机制(冗余机制)-4-ASM PST

Exadata的数据保护机制(冗余机制)- 1 Exadata的数据保护机制(冗余机制)- 2 Exadata的数据保护机制(冗余机制)- 3- Failure Group 为了补充前面两篇的一些概念,这里,我们简单介绍下ASM的PST。 我们知道,asmfile extent是分布在多个磁盘之间,称为partner,Partner disk会存放在一个或者多个分离的failure group上。ASM自动选择Disk partner并限制其数量,这是受隐含参数”_asm_partner_target_disk_part”控制的。在10g中,每盘都会存在最多10个Disk partner,而在11gR2中每盘都会存在最多8个Disk partner。ASM会自动创建和维护Partner关系,如果磁盘损坏(failure),那么ASM会更新其extent map使今后的读取操作指向剩余的健康的partner。 对于external redundancy 的磁盘组,每个磁盘组只有一个PST table,对于normal redundancy 的磁盘组,每个磁盘组有3个PST table,对于high redundancy 的磁盘组,每个磁盘组有5个PST table。 . PST的信息是由GMON进程维护的。PST 包含了一个磁盘组中ASM disk的状态信息:disk number,status(online or offline),partner disk number,heartbeat的信息,11g的ASM中,PST 还引包含了failure group的信息。因此,ASM根据PST(Partner Status Table)的信息就知道哪个盘的partner是offline状态的。 … 继续阅读

发表在 ASM, 体系架构, 内部机制 | 标签为 , , | 留下评论

Exadata的数据保护机制(冗余机制)- 3-Failure Group

Exadata的数据保护机制(冗余机制)- 1 Exadata的数据保护机制(冗余机制)- 2 为了补充前面两篇的一些概念,这里,我们简单介绍下ASM的Failgroup。 ASM提供了3种冗余方法。 EXTERNAL,即ASM本身不做镜像,而依赖于底层存储阵列资深实现镜像;在External下任何的写错误都会导致Disk Group被强制dismount。在此模式下所有的ASM DISK必须都完好,否则Disk Group将无法MOUNT。 . NORMAL, 即ASM将为每一个asmfile extent创建一个额外的拷贝以便实现冗余;默认情况下所有的asmfile都会被镜像,这样每一个asmfile extent都有2份拷贝。若写错误发生在2个Disk上且这2个Disk是partners时将导致disk Disk Group被强制dismount。若发生失败的磁盘不是partners则不会引起数据丢失和不可用。 . HIGH, 即ASM为每一个asmfile extent创建两个额外的拷贝以便实现更高的冗余。2个互为partners的Disk的失败不会引起数据丢失,当然,不能有更多的partners Disk失败了。 数据镜像依赖于failure group和extent partnering实现。 . ASM在NORMAL 或 HIGH 冗余度下可以容许丢失一个failure group中所有的磁盘。 . 下面我来详细说下,Oracle如何通过failure group来提供数据的高可用性。 首先,ASM使用的镜像算法并不是镜像整个disk,而是作extent级的镜像。ASM会自动优化文件分布以降低设备故障造成数据丢失的可能性。 在normal redundancy模式下,ASM的按照extent进行striping时是在一个DiskGroup中完成的(即,在一个DG的2个Fail group之间完成的,而不是一个单独的FG中完成),ASM环境中每分配一个extent都会有一个primary copy和一个secondary copy,ASM的算法保证了secondary … 继续阅读

发表在 ASM, 体系架构, 内部机制 | 标签为 , , | 留下评论

Exadata的数据保护机制(冗余机制)- 2

在上一篇中,我们讲了存储节点上的盘的划分,请参考Exadata的数据保护机制(冗余机制)- 1 那么这次我们来说说,在Exadata上有ASM哪些不同于传统架构(非Exadata环境)的特点,他是怎么保护数据的。 首先我们来回顾一下ASM的相关知识点 我们知道,就像数据库文件从逻辑上分为很多extents一样(每个segment由多个extents组成),ASM的文件(ASM FILE)也分为很多extent(ASM FILE EXTENTS)。也就是说,数据库中datafile包含的逻辑存储单元是segment,extent等等,而ASM上ASMFILE的逻辑存储单元是asmfile extent。 数据库文件的物理单元是block,而ASM文件的物理单元是AU。 因此,我们知道了,每个ASM file包含很多extent,ASM FILE和extent之间对应关系就是 EXTENT MAP(每个asmfile上extents的分布) 每个物理磁盘包含很多AU,磁盘和AU之间的对应关系就在ALLOCATION TABLE中(每个磁盘上AU的分布)。 ASM的镜像是基于文件extent的粒度,extent分布在多个磁盘之间,称为partner。Partner disk会存放在一个或者多个分离的failure group上。 在ASM中,每个文件都按照AU的尺寸打散到磁盘组中所有的磁盘上,我们把这种条带划叫做粗糙条带划(COARSE striping),粗糙条带划是根据AU的尺寸的(即,缺省为1M,Exadata上通常为4M)。对于控制文件的条带划,是采用128k的Striping的,称之为“Fine striping”。 AU的缺省尺寸是1M,ASM的block缺省大小是4k,这其实是受隐含参数控制的: _asm_blksize 4096 metadata block size _asm_ausize 1048576 allocation unit size 在Exadata上缺省的AU为4M(推荐值),ASM block为4k。 查询各种文件条带划的信息(下面是在我的Exadata VM上测试的输出): SQL> select … 继续阅读

发表在 体系架构, 内部机制 | 标签为 , , , | 留下评论

Exadata的数据保护机制(冗余机制)- 1

在Exadata中,对数据库的保护(数据的冗余机制)是通过ASM实现的(不是通过RAID那种外部冗余来实现的): Exadata中通常我们建立磁盘组的时候会采用 Normal Redundancy。 当然,初始配置或者安装时,你可以通过onecommand进行配置,至少采用 Normal Redundancy ,可选的是High Redundancy (无论是Image 11.2.3.2.x以前那种excel表格形式的,还是2013年年初后来时推出的Java模式的onecommand) 采用Normal保护方式,任何一份数据会同时分布到两个不同的Failure Group中,任何两个不同的Failure Group一定不来自同一个Storage Cell。 如果需要增加数据保护,可以增加Failure Group数量实现数据更多重的保护 请注意,voting disk会分布在3个cell上(这也是为什么Exadata 1/4 Rack和 1/8 Rack必须至少3个cell的原因): 当然,你可以修改voting disk到其他磁盘组: Exadata的Storage Cell内部虽然配置的RAID卡,但是实际上数据的保护并不是通过每个Storage Cell内部的RAID卡实现保护的。 对于Storage Cell,所有的DISK是以原始的状态提供给位于DB server层的ASM作为ASM Disk使用 Exadata的每个存储节点有12块物理磁盘。 每个物理磁盘都映射为逻辑单元LUN,每个存储节点的前两个磁盘中都包含一个系统区域。 这两个磁盘上的系统区域是彼此镜像的副本,他们是使用软件镜像维护的。系统区域在每个磁盘上大约占用29GB的空间。 系统区域包括OS映像、交换空间、Exadata Image的二进制文件、度量和警报系统信息库以及各种其它配置和元数据文件。 前两块盘上除了每盘前面29G用于存储本地系统文件(使用LVM管理),其余部分都作为数据盘使用,和存储节点上从第3块盘开始到第12块盘一样,是纯数据。 参加下图: 存储节点的前两块盘类似下面: … 继续阅读

发表在 体系架构, 内部机制 | 标签为 , , , | 一条评论