二楞子's profile疯癫二楞子PhotosBlogListsMore ![]() | Help |
|
|
10年资料-分区表
软件工程师简历、面试(转)######################纯碎转过来喽一眼 简历: (作者简介: 王忻,Google 工程师。北京出生,五岁时跟随父母移居美国。中学期间跳了三级,十五岁进入了加州理工大学,加入 Google 前曾在微软等公司工作。) ##################################### 面试: (作者简介: 王忻,Google 工程师。北京出生,五岁时跟随父母移居美国。中学期间跳了三级,十五岁进入了加州理工大学,加入 Google 前曾在微软等公司工作。) E1通信的基础知识--转今天被同事问到一个E1有多少话路,时隙的意思,发现自己有些描述不清楚,颇有外公当年说的那句话:“翻开书就了然,背着书就茫然。”找了一些基本的东西,贴过来保留。 ################################## E1简介: ① 一条E1是2.048M的链路,用PCM编码。 E1帧结构 E1分为有成帧,成复帧与不成帧三种方式,在成帧的E1中第0时隙用于传输帧同步数据,其余31个时隙可以用于传输有效数据;在成复帧的E1中,除了第0时隙外,第16时隙是用于传输信令的,只有第1到15,第17到第31共30个时隙可用于传输有效数据;而在不成帧的E1中,所有32个时隙都可用于传输有效数据。 E1信道的帧结构简述 在E1信道中,8bit组成一个时隙(TS),由32个时隙组成了一个帧(F),16个帧组成一个复帧(MF)。在一个帧中,TS0 主要用于传送帧定位信号(FAS)、CRC-4(循环冗余校验)和对端告警指示,TS16主要传送随路信令(CAS)、复帧定位信号和复帧对端告警指示,TS1至TS15和TS17至TS31共30个时隙传送话音或数据等信息。我们称TS1至TS15和TS17至TS31为“净荷”,TS0和TS16为“开销”。如果采用带外公共信道信令(CCS),TS16就失去了传送信令的用途,该时隙也可用来传送信息信号,这时帧结构的净荷为TS1至TS31,开销只有TS0了。 由PCM编码介绍E1: 由PCM编码中E1的时隙特征可知,E1共分32个时隙TS0-TS31。 每个时隙为64K,其中TS0为被帧同步码,Si、Sa4、Sa5、sa6、Sa7、A比特占用,若系统运用了CRC校验,则Si比特位置改传CRC校验码。TS16为信令时隙,当使用到信令(共路信令或随路信令)时,该时隙用来传输信令,用户不可用来传输数据。所以2M的PCM码型有 ① PCM30:PCM30用户可用时隙为30个,TS1-TS15,TS17-TS31。TS16传送信令,无CRC校验。 ② PCM31:PCM30用户可用时隙为31个,TS1-TS15,TS16-TS31。TS16不传送信令,无CRC校验。 ③ PCM30C:PCM30用户可用时隙为30个,TS1-TS15,TS17-TS31。TS16传送信令,有CRC校验。 ④ PCM31C:PCM30用户可用时隙为31个,TS1-TS15,TS16-TS31。TS16不传送信令,有CRC校验。 CE1,就是把2M的传输分成了30个64K的时隙,一般写成N*64,你可以利用其中的几个时隙,也就是只利用n个64K,必须接在ce1/pri上。 CE1----最多可有31个信道承载数据 timeslots 1----31 timeslots 0 传同步。 E1接口: G.703非平衡的75 ohm,平衡的120 ohm2种接口 使用E1的三种方法: 用2611等的广域网接口卡,经V.35-G.703转换器接E1线。这样的成本应该比E1卡低的。目前DDN的2M速率线路通常是经HDSL线路拉至用户侧。E1可由传输设备出的光纤拉至用户侧的光端机提供E1服务。 E1的使用注意事项: E1接口对接时,双方的E1不能有信号丢失/帧失步/复帧失步/滑码告警,但是双方在E1接口参数上必须完全一致,因为个别特性参数的不一致,不会在指示灯或者告警台上有任何告警,但是会造成数据通道的不通/误码/滑码/失步等情况。这些特性参数主要有;阻抗/ 帧结构/CRC4校验,阻有75ohm和120ohm两种,帧结构有PCM31/PCM30/不成帧三种;在新桥节点机中将PCM31和PCM30分别描述为CCS和CAS,对接时要告诉网管人员选择CCS,是否进行CRC校验可以灵活选择,关键要双方一致,这样采可保证物理层的正常。 E1常见问题
################################## 文完。。。概念性的东西还是需要经常记,在实际中多了才不会忘三不知时被问一句,恼火。 mysql查看状态及简单优化--postfix搭建ing顺道使用show status命令 RHEL4+Kickstart+NFS+DHCP+PXE全自动无人安装--试验完成环境:HP580DL*11台,服务器及客户端:RHEL4.6 因为是DVD版的ISO,mount没有原文复杂,我直接解压到/data/system下。 按照原文流程走下去是没有任何问题的,只用稍微改一下IP地址,网段啥的,配置出来直接可以使用。 但是原文最后说:“准备一台客户端,然后更改启动方式为通过带PXE自启动模块的网卡启动,客户端在开启之后会主动向DHCP服务器获取地址,并且从TFTP服务器上获得安装配置以及信息;客户端所做的工作只是开机,剩下的工作由ks.cfg文件控制自动完成。” 这个我这边第一台安装的时候是有点问题的,启动的时候需要选择eth0还是eth1,选择网卡之后后面的所有配置、安装全部不用管了,直接见到: localhost login: 不知道是不是双网卡哪儿需要改动一下,或者是都要这样。 ####################################### 原帖,CU上的精华,(http://linux.chinaunix.net/bbs/thread-1008703-1-1.html),原帖后面还有其他几个版本的配置文件,先转一下原文: 实验环境:C/S结构,服务器采用的操作系统为RHEL 4.0,客户端预装RHEL 4.0。 ####################################### 感谢jerrywjl帅哥。 openvpn的小问题昨天建账号,遇到了: failed to update database 怪异,开始以为是sshd升级造成的,准备重新编译,但是觉得又不像,可能是配置问题,搜之, grid-ca-sign命令 F5负载均衡器简明配置手册(转)今天在值班的时候突然接到电话,说要更改F5的一个配置,结果登陆到F5的web界面上,突然觉得这些东西都超级陌生了,呵呵,技术这个东西看来确实是需要经常的练习的啊,虽然没有要求我们专业的维护,但是对于一个运维人员来说,基本的操作应该要会的吧,找到一篇简单的基于ssh的说明,温故一下。 F5负载均衡器简明配置手册负载均衡器通常称为四层交换机或七层交换机。四层交换机主要分析IP层及TCP/UDP层,实现四层流量负载均衡。七层交换机除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息。一、F5配置步骤: 1、F5组网规划 (1)组网拓朴图(具体到网络设备物理端口的分配和连接,服务器网卡的分配与连接) (2)IP地址的分配(具体到网络设备和服务器网卡的IP地址的分配) (3)F5上业务的VIP、成员池、节点、负载均衡算法、策略保持方法的确定 2、F5配置前的准备工作 (1)版本检查 f5-portal-1:~# b version Kernel: BIG-IP Kernel 4.5PTF-07 Build18 (2)时间检查--如不正确,请到单用户模式下进行修改 f5-portal-1:~# date Thu May 20 15:05:10 CST 2004 (3)申请license--现场用的F5都需要自己到F5网站上申请license 3、F5 的通用配置 (1)在安全要求允许的情况下,在setup菜单中可以打开telnet及ftp功能,便于以后方便维护 (2)配置vlan unique_mac选项,此选项是保证F5上不同的vlan 的MAC地址不一样。在缺省情况下,F5的各个vlan的MAC地址是一样的,建议在配置时,把此项统一选择上。可用命令ifconfig –a来较验 具体是system/Advanced Properties/vlan unique_mac (3)配置snat any_ip选项选项,此选项为了保证内网的机器做了snat后,可以对ping的数据流作转换。Ping是第三层的数据包,缺省情况下F5是不对ping的数据包作转换,也就是internal vlan的主机无法ping external vlan的机器。(注意:还可以采用telnet来验证。) 具体是system/Advanced Properties/snat any_ip 4、F5 的初始化配置 建议在对F5进行初始时都用命令行方式来进行初始化(用Web页面初始化的方式有时会有问题)。登录到命令行上,运行config或setup命令可以进行初始化配置。初次运行时会提示一些license的信息。 default:~# config 5、F5双机切换监控配置(有F5双机时需要) (1)在web页面中选择相应的vlan,在arm failsafe选择则可。Timeout为从F5收不到包的时间起,经过多长时间就发生切换。此配置不能同步,需要在F5的主备机上同时配置。每个vlan都可以配置vlan arm failsafe。 具体在Network下 (2)在web页面中选择system,在redundant properties中把gateway failsafe选择则可。Router是需要监控的地址。此配置不能同步,需要在F5的主备机上同时配置。一套F5上只能配置一个gateway failsafe 具体在system/redundant properties/gateway failsafe 6、F5 MAC masquerade配置 Mac Masquerading是F5的Shared IP Address (Floating)的MAC地址,F5如果不配置此项,则shared IP Address的MAC地址与每台F5的vlan self IP Address的MAC地址是一样的。 一般服务器是以shared IP Address为网关,在两台F5上都配置了Mac Masquerade(相同的MAC地址),这样当F5发生切换后,服务器上shared IP address的MAC不变,保证了业务的不中断 具体在Network下 7、F5的pool配置 (1)在配置工具Web页面的导航面板中选择“Pools”中的“Pools”标签,点击“ADD”按钮添加服务器池(Pool)。 (2)在池属性(Pool Properties)中的“Load Balancing Method”表格中选择负载均衡策略,通常采用默认策略:“Round Robin” (3)在“Resouces”表格中的“Member Address”文本框输入成员IP地址,在“Service”文本框中输入服务端口,点击“>>”添加到“Current Members”当前成员列表中。 (4)添加所有组成员,点击“Done”完成配置。 (5)在“Pools”中的“Pool Name”列选中特定池,然后池属性页面中选择“Persistence”标签。 (6)在“Persistence Type”表格中选定会话保持类型。点击“Apply”应用配置。 8、F5的virtual server配置 (1)在配置工具Web页面的导航面板中选择“Virtual Servers”中的“Virtual Servers”标签,点击“ADD”按钮添加虚拟服务器。 (2)在“Add Virtual Server”窗口的“Address”文本框中输入虚拟服务器IP地址,并在“Service”文本框中输入服务端口号或在下拉框中选择现有的服务名称,点击“Next”执行下一步。 (3)在“Add Virtual Server”窗口的“Configure Basic Properties”页面中点击“Next”执行下一步。 在“Add Virtual Server”窗口的“Select Physical Resources”页面中点击单选按钮“Pool”,并在下拉框中选择虚拟服务器对应的负载均衡池。 (4)按“Done”完成创建虚拟服务器。 9、F5的monitor的配置 (1)在配置工具Web页面的导航面板中选择“Monitor”中的“Monitors”标签,点击“ADD”按钮添加监控 (2)根据需要选择相关关联类型:“Node Associations”标签、Node Address Associations”标签、Service Associations”标签。 (3)被选关联标签中,在“Choose Monitor”表格中选择监控名称,点击“>>”按钮添加到“Monitor Rule”监控规格文本框中。监控规则可以为一条或多条。 (4)选择监控规则后,在对应节点的“Associate Current Monitor Rule”复选框中选中。如果欲删除监控关联,则选中对应节点的“Delete Existing Assocation”复选框。 (5)点击“Apply”关联监控 10、F5的SNAT配置 (1)在配置工具Web页面的导航面板中选择“NATs”中的“SNATs”标签,点击“ADD”按钮添加SNAT地址。 (2)在“Add SNAT”窗口中“Translation Address”的“IP”文本框中输入SNAT IP地址,并在“Origin List”的“Origin Address”文本框中输入节点IP地址或在“Origin VLAN”下拉框中选择VLAN名称,点击“>>”加入“Current List”列表。 (3)按“Done”完成添加SNAT IP地址。 11、F5主备机同步及切换校验 具体在system/Redundant Properties/synchonize Config... 12、业务的校验 F5主备机切换的校验 F5主备机业务运行的校验 其中1~6是基本配置,7~10业务配置,11~12校验 二、F5负载均衡器的维护 1、F5节点及应用的检查 通过“System -> Network Map”页面查看节点及应用状态 绿色:节点或虚拟服务器为“UP” 红色:节点或虚拟服务器状态为“Down” 灰色:节点或虚拟服务器被禁用 2、日志的检查 (1)当天日志:从web上查看logs中的system log、bigip log、monitor log,看日志中是否有异常。 (2)7天内的日志 系统日志文件 - /var/log/messages消息, 系统消息 BIG-IP 日志文件 - /var/log/bigip “External” BIG-IP events Monitor 日志文件 - /var/log/bigd “Internal” BIG-IP Events 3DNS 日志文件 - /var/log/3dns 3DNS Information 用gzcat、more、vi命令打开 3、F5流量的检查 (1)业务上的基本维护主要是在F5上查看F5分发到各节点的connect是否负载均衡,一般不应有数量级的差别 (2)通过WEB->pool-> pool statistics中查看connection项中的total和current项,不应有明显的数量级的差别 (3)F5 qkview命令 执行qkview,执行完成后将输出信息保存在文件“/var/tmp/-tech.out”中,供高级技术支持用 (4)F5 tcpdump命令 TCPDUMP是Unix系统常用的报文分析工具,TCPDUMP经常用于故障定位,如会话保持失效、SNAT通信问题等 tcpdump [ -adeflnNOpqRStvxX ] [ -c count ] [ -F file ] [ -i interface ] [ -m module ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -E algo:secret ] [ expression ] openvpn小bug今天终于又一次证实了openvpn的一个小bug,不知道算不算bug,也还没来得及慢慢去研究文档。 现象:openvpn拨上之后连接,取地址完全正常,能连接到内网服务器,但是只要一进行有包交换的动作,VPN马上开始闪断,Windows下面的客户端会会绿黄交替。表明:VPN断了。 开始一直以为是服务端,客户端,服务器,网络哪儿有问题,但是随着机器的渐渐增多,发现了这个问题出现在IBMR51、IBMT60、(但是笔记本用无线网卡的话是可以连接,不会有任何的中断)以及公司新购置的DELL 740上面,已经大概知道:千M网卡的问题。 DELL 740解决办法:安装独立网卡。--问题结局。 昨天同事新购置了IBMT61,今天安装了Openvpn,果然,一开始做操作,马上黄了。 结论:千M网卡在用openvpn-2.0.7.tar.gz这个openvpn,客户端在OpenVpn Gui v1.0.3的时候会出现以上状况--未有更好的解决办法。 有高手知道问题原因的和能解决的请赐教MSN:sio1201@hotmail.com,或在此留言。多谢。 介绍一篇关于session的好文章,写的很详细(收藏)目录: 一、术语session session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间 ①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作,比如从登录到选购商品到结账登出这样一个网上购物的过程,有时候也被称为一个transaction),然而有时候也可能仅仅是指一次连接,也有可能是指含义①,其中的差别只能靠上下文来推断②。 然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义, “面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才能开始,与此相对的是写信,在你把信发出去的时候你并不能确认对方的地址是否正确,通信渠道不一定能建立,但对发信人来说,通信已经开始了。“保持状态”则是指通信的一方能够把一系列的消息关联起来,使得消息之间可以互相依赖,比如一个服务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱。这一类的例子有“一个TCP session”或者 “一个POP3 session”③。 而到了web服务器蓬勃发展的时代,session在web开发语境下的语义又有了新的扩展,它的含义是指一类用来在客户端与服务器之间保持状态的解决方案④。有时候session也用来指这种解决方案的存储结构,如“把xxx保存在session 里”⑤。由于各种用于web开发的语言在一定程度上都提供了对这种解决方案的支持,所以在某种特定语言的语境下,session也被用来指代该语言的解决方案,比如经常把Java里提供的javax.servlet.http.HttpSession简称为session⑥。 鉴于这种混乱已不可改变,本文中session一词的运用也会根据上下文有不同的含义,请大家注意分辨。 二、HTTP协议与状态保持 然而聪明(或者贪心?)的人们很快发现如果能够提供一些按需生成的动态信息会使web变得更加有用,就像给有线电视加上点播功能一样。这种需求一方面迫使HTML逐步添加了表单、脚本、DOM等客户端行为,另一方面在服务器端则出现了CGI规范以响应客户端的动态请求,作为传输载体的HTTP协议也添加了文件上载、 cookie这些特性。其中cookie的作用就是为了解决HTTP协议无状态的缺陷所作出的努力。至于后来出现的session机制则是又一种在客户端与服务器之间保持状态的解决方案。 让我们用几个例子来描述一下cookie和session机制之间的区别与联系。笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案: 由于HTTP协议是无状态的,而出于种种考虑也不希望使之成为有状态的,因此,后面两种方案就成为现实的选择。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。 三、理解cookie机制 正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。 而cookie 的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。意思是麦当劳的会员卡只能在麦当劳的店里出示,如果某家分店还发行了自己的会员卡,那么进这家店的时候除了要出示麦当劳的会员卡,还要出示这家店的会员卡。 cookie的内容主要包括:名字,值,过期时间,路径和域。 存储在硬盘上的cookie 可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。对于IE,在一个打开的窗口上按 Ctrl-N(或者从文件菜单)打开的窗口可以与原窗口共享,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie;对于 Mozilla Firefox0.8,所有的进程和标签页都可以共享同样的cookie。一般来说是用javascript的window.open打开的窗口会与原窗口共享内存cookie。浏览器对于会话cookie的这种只认cookie不认人的处理方式经常给采用session机制的web应用程序开发者造成很大的困扰。 下面就是一个goolge设置cookie的响应头的例子 这是使用HTTPLook这个HTTP Sniffer软件来俘获的HTTP通讯纪录的一部分 浏览器在再次访问goolge的资源时自动向外发送cookie 使用Firefox可以很容易的观察现有的cookie的值 IE也可以设置在接受cookie前询问 这是一个询问接受cookie的对话框。 四、理解session机制 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID,而。比如weblogic对于web应用程序生成的cookie,JSESSIONID= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是 JSESSIONID。 由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如下面的表单 在谈论session机制的时候,常常听到这样一种误解“只要关闭浏览器,session就消失了”。其实可以想象一下会员卡的例子,除非顾客主动对店家提出销卡,否则店家绝对不会轻易删除顾客的资料。对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个 session id就消失了,再次连接服务器时也就无法找到原来的session。如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求头,把原来的session id发送给服务器,则再次打开浏览器仍然能够找到原来的session。 恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。 五、理解javax.servlet.http.HttpSession 首先,Weblogic Server提供了一系列的参数来控制它的HttpSession的实现,包括使用cookie的开关选项,使用URL重写的开关选项,session持久化的设置,session失效时间的设置,以及针对cookie的各种设置,比如设置cookie的名字、路径、域, cookie的生存时间等。 一般情况下,session都是存储在内存里,当服务器进程被停止或者重启的时候,内存里的session也会被清空,如果设置了session的持久化特性,服务器就会把session保存到硬盘上,当服务器进程重新启动或这些信息将能够被再次使用, Weblogic Server支持的持久性方式包括文件、数据库、客户端cookie保存和复制。 复制严格说来不算持久化保存,因为session实际上还是保存在内存里,不过同样的信息被复制到各个cluster内的服务器进程中,这样即使某个服务器进程停止工作也仍然可以从其他进程中取得session。 cookie生存时间的设置则会影响浏览器生成的cookie是否是一个会话cookie。默认是使用会话cookie。有兴趣的可以用它来试验我们在第四节里提到的那个误解。 cookie的路径对于web应用程序来说是一个非常重要的选项,Weblogic Server对这个选项的默认处理方式使得它与其他服务器有明显的区别。后面我们会专题讨论。 关于session的设置参考[5] http://e-docs.bea.com/wls/docs70/webapp/weblogic_xml.html#1036869 六、HttpSession常见问题 1、session在何时被创建 由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。 2、session何时被删除 3、如何做到在浏览器关闭时删除session 4、有个HttpSessionListener是怎么回事 5、存放在session中的对象必须是可序列化的吗 6、如何才能正确的应付客户端禁止cookie的可能性 7、开两个浏览器窗口访问应用程序会使用同一个session还是不同的session 8、如何防止用户打开两个浏览器窗口操作导致的session混乱 9、为什么在Weblogic Server中改变session的值后要重新调用一次session.setValue 10、为什么session不见了 七、跨应用程序的session共享 常常有这样的情况,一个大项目被分割成若干小项目开发,为了能够互不干扰,要求每个小项目作为一个单独的web应用程序开发,可是到了最后突然发现某几个小项目之间需要共享一些信息,或者想使用session来实现SSO(single sign on),在session中保存login的用户信息,最自然的要求是应用程序间能够访问彼此的session。 然而按照Servlet规范,session的作用范围应该仅仅限于当前应用程序下,不同的应用程序之间是不能够互相访问对方的session的。各个应用服务器从实际效果上都遵守了这一规范,但是实现的细节却可能各有不同,因此解决跨应用程序session共享的方法也各不相同。 首先来看一下Tomcat是如何实现web应用程序之间session的隔离的,从 Tomcat设置的cookie路径来看,它对不同的应用程序设置的cookie路径是不同的,这样不同的应用程序所用的session id是不同的,因此即使在同一个浏览器窗口里访问不同的应用程序,发送给服务器的session id也可以是不同的。 根据这个特性,我们可以推测Tomcat中session的内存结构大致如下。 笔者以前用过的iPlanet也采用的是同样的方式,估计SunONE与iPlanet之间不会有太大的差别。对于这种方式的服务器,解决的思路很简单,实际实行起来也不难。要么让所有的应用程序共享一个session id,要么让应用程序能够获得其他应用程序的session id。 iPlanet中有一种很简单的方法来实现共享一个session id,那就是把各个应用程序的cookie路径都设为/(实际上应该是/NASApp,对于应用程序来讲它的作用相当于根)。 需要注意的是,操作共享的session应该遵循一些编程约定,比如在session attribute名字的前面加上应用程序的前缀,使得 setAttribute("name", "neo")变成setAttribute("app1.name", "neo"),以防止命名空间冲突,导致互相覆盖。 在Tomcat中则没有这么方便的选择。在Tomcat版本3上,我们还可以有一些手段来共享session。对于版本4以上的Tomcat,目前笔者尚未发现简单的办法。只能借助于第三方的力量,比如使用文件、数据库、JMS或者客户端cookie,URL参数或者隐藏字段等手段。 我们再看一下Weblogic Server是如何处理session的。 从截屏画面上可以看到Weblogic Server对所有的应用程序设置的cookie的路径都是/,这是不是意味着在Weblogic Server中默认的就可以共享session了呢?然而一个小实验即可证明即使不同的应用程序使用的是同一个session,各个应用程序仍然只能访问自己所设置的那些属性。这说明Weblogic Server中的session的内存结构可能如下 对于这样一种结构,在 session机制本身上来解决session共享的问题应该是不可能的了。除了借助于第三方的力量,比如使用文件、数据库、JMS或者客户端 cookie,URL参数或者隐藏字段等手段,还有一种较为方便的做法,就是把一个应用程序的session放到ServletContext中,这样另外一个应用程序就可以从ServletContext中取得前一个应用程序的引用。示例代码如下, 应用程序A 应用程序B 值得注意的是这种用法不可移植,因为根据ServletContext的JavaDoc,应用服务器可以处于安全的原因对于context.getContext("/appA");返回空值,以上做法在Weblogic Server 8.1中通过。 那么Weblogic Server为什么要把所有的应用程序的cookie路径都设为/呢?原来是为了SSO,凡是共享这个session的应用程序都可以共享认证的信息。一个简单的实验就可以证明这一点,修改首先登录的那个应用程序的描述符weblogic.xml,把cookie路径修改为/appA 访问另外一个应用程序会重新要求登录,即使是反过来,先访问cookie路径为/的应用程序,再访问修改过路径的这个,虽然不再提示登录,但是登录的用户信息也会丢失。注意做这个实验时认证方式应该使用FORM,因为浏览器和web服务器对basic认证方式有其他的处理方式,第二次请求的认证不是通过 session来实现的。具体请参看[7] secion 14.8 Authorization,你可以修改所附的示例程序来做这些试验。 八、总结 IP地址子网掩码位数换算方法记得之前很长一段时间都不会算这玩意儿,很实用的文章,备用。多给自己出点题,多算2次就OK了。 IP地址子网掩码: 子网掩码的快速算法 大家都应该知道2的0次方到10次方是多少把?也给大家说一下,分别是: /24就是255.255.255.0~子网掩码哦。 一个10进制的255~就是2进制的8个1 三个255.255.255`就是24个1~所以写24 比如我ip是:218.77.26.114/255.255.255.192应该怎么换算成缩略子网掩码方式 255.255.255.192 换算成二进制: 前三组都是8bit, 第四组 192 -> 11000000 表示2bit (左起11) 用做subnet(子网) 结果: HA-http 配置、测试通过(存档自留)HA-http 测试 2台HP585 环境: 配置过程: 主要配置文件 vi /etc/hosts vi /etc/sysconfig/network vi /var/www/html/index.html vi /etc/ha.d/ha.cf vi /etc/ha.d/haresources vi /etc/ha.d/authkeys chmod 600 /etc/ha.dauthkeys 2台服务器配置保持一致 /etc/init.d/heartbeat start 然后访问:http://192.168.1.70,等到网页,内容显示的是192.168.1.71/var/www/html/index.html下面的内容, QQ2009preview小用今天找了一下最新版本的QQ,因为昨天有人在某个群里炫了一把QQ2009,所以目标十分明确,直接google,马上便有N多下载点,随便down了一下下来,qq2009preview_chs.exe(在IT168的迅雷下载链接),下载下来了只有6.69M了,貌似比以前的很多版本都要小,难怪还是preview版。直接setup,一路下来,安装也多快的,文件夹下面看到少了很多东西,OK,废话不说,直接启动,自己的号是会员,能直接登录,老婆的号不是会员,也没申请啥,也直接登录,昏,看来是RP爆发了(N多同事和同学都没法登陆)。 呵呵,发现QQ2009越来越像MSN了,不管功能还是界面,连以前保存每个帐号的目录也由他程序的根目录变到现在我的文档下面的QQ Files目录下了,这个好得多了呢,不但减少了程序目录的大小(贴的图太多了),还可以控制很多东西呢,2009的preview版本现在看来好像没有其他游戏和其他很多扩展功能,设置和界面也挺清爽的。就不贴图上来了,网上N堆,自己瞅吧:)大家自己琢磨吧,都是N年的Q人了。 转给无法登陆的朋友:(同事测试通过) 办法如下: 1.下载QQ2009 Preview 2.再下载Bin.rar,该压缩包里包含2个文件(62.4 KB ),均是从官方TM2008 Preview4.提取,网上说还要安装TM2008 Preview4,完全没必要,只需这2个文件即可! 官方下载地址:Bin.rar简体中文版本 3.安装QQ2009 Preview版,然后解压Bin.rar,把里面的vi.dat和QQ.exe复制到QQ2009\Bin目录下,然后用QQ.exe登陆即可... 说明:QQ2007II 正式版接下来正式对外的是QQ2008系列的版本。最新的QQ2008 贺岁版预计是在1月底左右发布,和QQ2009 Preview的发布并没有什么直接关联。 YouTube架构学习YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。
==========================================
通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建.领导发到邮件里让大家阅读,今天早上才有机会把它好好看一遍: ============================== 这是我在网上无意中看到的一篇文章,介绍了myspace的六次重构,对于做海量用户系统的朋友来说,应该能从中受到很多启发. 虽然自2005年早期,站点账户数超过7百万后,系统架构到目前为止保持了相对稳定,但MySpace仍然在为SQL Server支持的同时连接数等方面继续攻坚,Benedetto说,"我们已经尽可能把事情做到最好"。 里程碑一:50万账户 按Benedetto 的说法,MySpace最初的系统很小,只有两台Web服务器和一个数据库服务器。那时使用的是Dell双CPU、4G内存的系统。 单个数据库就意味着所有数据都存储在一个地方,再由两台Web服务器分担处理用户请求的工作量。但就像MySpace后来的几次底层系统修订时的情况一样,三服务器架构很快不堪重负。此后一个时期内,MySpace基本是通过添置更多Web服务器来对付用户暴增问题的。 但到在2004年早期,MySpace用户数增长到50万后,数据库服务器也已开始汗流浃背。 但和Web服务器不同,增加数据库可没那么简单。如果一个站点由多个数据库支持,设计者必须考虑的是,如何在保证数据一致性的前提下,让多个数据库分担压力。 在第二代架构中,MySpace运行在3个SQL Server数据库服务器上——一个为主,所有的新数据都向它提交,然后由它复制到其他两个;另两个全力向用户供给数据,用以在博客和个人资料栏显示。这种方式在一段时间内效果很好——只要增加数据库服务器,加大硬盘,就可以应对用户数和访问量的增加。 里程碑二:1-2百万账户 MySpace注册数到达1百万至2百万区间后,数据库服务器开始受制于I/O容量——即它们存取数据的速度。而当时才是2004年中,距离上次数据库系统调整不过数月。用户的提交请求被阻塞,就像千人乐迷要挤进只能容纳几百人的夜总会,站点开始遭遇"主要矛盾",Benedetto说,这意味着MySpace永远都会轻度落后于用户需求。 "有人花5分钟都无法完成留言,因此用户总是抱怨说网站已经完蛋了。"他补充道。 这一次的数据库架构按照垂直分割模式设计,不同的数据库服务于站点的不同功能,如登录、用户资料和博客。于是,站点的扩展性问题看似又可以告一段落了,可以歇一阵子。 垂直分割策略利于多个数据库分担访问压力,当用户要求增加新功能时,MySpace将投入新的数据库予以支持它。账户到达2百万后,MySpace还从存储设备与数据库服务器直接交互的方式切换到SAN(Storage Area Network,存储区域网络)——用高带宽、专门设计的网络将大量磁盘存储设备连接在一起,而数据库连接到SAN。这项措施极大提升了系统性能、正常运行时间和可靠性,Benedetto说。 里程碑三:3百万账户 当用户继续增加到3百万后,垂直分割策略也开始难以为继。尽管站点的各个应用被设计得高度独立,但有些信息必须共享。在这个架构里,每个数据库必须有各自的用户表副本——MySpace授权用户的电子花名册。这就意味着一个用户注册时,该条账户记录必须在9个不同数据库上分别创建。但在个别情况下,如果其中某台数据库服务器临时不可到达,对应事务就会失败,从而造成账户非完全创建,最终导致此用户的该项服务无效。 另外一个问题是,个别应用如博客增长太快,那么专门为它服务的数据库就有巨大压力。 2004年中,MySpace面临Web开发者称之为"向上扩展"对"向外扩展"(译者注:Scale Up和Scale Out,也称硬件扩展和软件扩展)的抉择——要么扩展到更大更强、也更昂贵的服务器上,要么部署大量相对便宜的服务器来分担数据库压力。一般来说,大型站点倾向于向外扩展,因为这将让它们得以保留通过增加服务器以提升系统能力的后路。 但成功地向外扩展架构必须解决复杂的分布式计算问题,大型站点如Google、Yahoo和Amazon.com,都必须自行研发大量相关技术。以Google为例,它构建了自己的分布式文件系统。 另外,向外扩展策略还需要大量重写原来软件,以保证系统能在分布式服务器上运行。"搞不好,开发人员的所有工作都将白费",Benedetto说。 因此,MySpace首先将重点放在了向上扩展上,花费了大约1个半月时间研究升级到32CPU服务器以管理更大数据库的问题。Benedetto说,"那时候,这个方案看似可能解决一切问题。"如稳定性,更棒的是对现有软件几乎没有改动要求。 糟糕的是,高端服务器极其昂贵,是购置同样处理能力和内存速度的多台服务器总和的很多倍。而且,站点架构师预测,从长期来看,即便是巨型数据库,最后也会不堪重负,Benedetto说,"换句话讲,只要增长趋势存在,我们最后无论如何都要走上向外扩展的道路。" 因此,MySpace最终将目光移到分布式计算架构——它在物理上分布的众多服务器,整体必须逻辑上等同于单台机器。拿数据库来说,就不能再像过去那样将应用拆分,再以不同数据库分别支持,而必须将整个站点看作一个应用。现在,数据库模型里只有一个用户表,支持博客、个人资料和其他核心功能的数据都存储在相同数据库。 既然所有的核心数据逻辑上都组织到一个数据库,那么MySpace必须找到新的办法以分担负荷——显然,运行在普通硬件上的单个数据库服务器是无能为力的。这次,不再按站点功能和应用分割数据库,MySpace开始将它的用户按每百万一组分割,然后将各组的全部数据分别存入独立的SQL Server实例。目前,MySpace的每台数据库服务器实际运行两个SQL Server实例,也就是说每台服务器服务大约2百万用户。Benedetto指出,以后还可以按照这种模式以更小粒度划分架构,从而优化负荷分担。 当然,还是有一个特殊数据库保存了所有账户的名称和密码。用户登录后,保存了他们其他数据的数据库再接管服务。特殊数据库的用户表虽然庞大,但它只负责用户登录,功能单一,所以负荷还是比较容易控制的。 里程碑四:9百万到1千7百万账户 2005年早期,账户达到9百万后,MySpace开始用Microsoft的C#编写ASP.NET程序。C#是C语言的最新派生语言,吸收了C++和Java的优点,依托于Microsoft .NET框架(Microsoft为软件组件化和分布式计算而设计的模型架构)。ASP.NET则由编写Web站点脚本的ASP技术演化而来,是Microsoft目前主推的Web站点编程环境。 可以说是立竿见影, MySpace马上就发现ASP.NET程序运行更有效率,与ColdFusion相比,完成同样任务需消耗的处理器能力更小。据技术总监Whitcomb说,新代码需要150台服务器完成的工作,如果用ColdFusion则需要246台。Benedetto还指出,性能上升的另一个原因可能是在变换软件平台,并用新语言重写代码的过程中,程序员复审并优化了一些功能流程。 最终,MySpace开始大规模迁移到ASP.NET。即便剩余的少部分ColdFusion代码,也从Cold-Fusion服务器搬到了ASP.NET,因为他们得到了BlueDragon.NET(乔治亚州阿尔法利塔New Atlanta Communications公司的产品,它能将ColdFusion代码自动重新编译到Microsoft平台)的帮助。 账户达到1千万时,MySpace再次遭遇存储瓶颈问题。SAN的引入解决了早期一些性能问题,但站点目前的要求已经开始周期性超越SAN的I/O容量——即它从磁盘存储系统读写数据的极限速度。 原因之一是每数据库1百万账户的分割策略,通常情况下的确可以将压力均分到各台服务器,但现实并非一成不变。比如第七台账户数据库上线后,仅仅7天就被塞满了,主要原因是佛罗里达一个乐队的歌迷疯狂注册。 某个数据库可能因为任何原因,在任何时候遭遇主要负荷,这时,SAN中绑定到该数据库的磁盘存储设备簇就可能过载。"SAN让磁盘I/O能力大幅提升了,但将它们绑定到特定数据库的做法是错误的。"Benedetto说。 最初,MySpace通过定期重新分配SAN中数据,以让其更为均衡的方法基本解决了这个问题,但这是一个人工过程,"大概需要两个人全职工作。"Benedetto说。 长期解决方案是迁移到虚拟存储体系上,这样,整个SAN被当作一个巨型存储池,不再要求每个磁盘为特定应用服务。MySpace目前采用了一种新型SAN设备——来自加利福尼亚州弗里蒙特的3PARdata。 在3PAR的系统里,仍能在逻辑上按容量划分数据存储,但它不再被绑定到特定磁盘或磁盘簇,而是散布于大量磁盘。这就使均分数据访问负荷成为可能。当数据库需要写入一组数据时,任何空闲磁盘都可以马上完成这项工作,而不再像以前那样阻塞在可能已经过载的磁盘阵列处。而且,因为多个磁盘都有数据副本,读取数据时,也不会使SAN的任何组件过载。 当2005年春天账户数达到1千7百万时,MySpace又启用了新的策略以减轻存储系统压力,即增加数据缓存层——位于Web服务器和数据库服务器之间,其唯一职能是在内存中建立被频繁请求数据对象的副本,如此一来,不访问数据库也可以向Web应用供给数据。换句话说,100个用户请求同一份资料,以前需要查询数据库100次,而现在只需1次,其余都可从缓存数据中获得。当然如果页面变化,缓存的数据必须从内存擦除,然后重新从数据库获取——但在此之前,数据库的压力已经大大减轻,整个站点的性能得到提升。 缓存区还为那些不需要记入数据库的数据提供了驿站,比如为跟踪用户会话而创建的临时文件——Benedetto坦言他需要在这方面补课,"我是数据库存储狂热分子,因此我总是想着将万事万物都存到数据库。"但将像会话跟踪这类的数据也存到数据库,站点将陷入泥沼。 增加缓存服务器是"一开始就应该做的事情,但我们成长太快,以致于没有时间坐下来好好研究这件事情。"Benedetto补充道。 里程碑五:2千6百万账户 2005年中期,服务账户数达到2千6百万时,MySpace切换到了还处于beta测试的SQL Server 2005。转换何太急?主流看法是2005版支持64位处理器。但Benedetto说,"这不是主要原因,尽管这也很重要;主要还是因为我们对内存的渴求。"支持64位的数据库可以管理更多内存。 更多内存就意味着更高的性能和更大的容量。原来运行32位版本的SQL Server服务器,能同时使用的内存最多只有4G。切换到64位,就好像加粗了输水管的直径。升级到SQL Server 2005和64位Windows Server 2003后,MySpace每台服务器配备了32G内存,后于2006年再次将配置标准提升到64G。 意外错误 如果没有对系统架构的历次修改与升级,MySpace根本不可能走到今天。但是,为什么系统还经常吃撑着了?很多用户抱怨的"意外错误"是怎么引起的呢? 原因之一是MySpace对Microsoft的Web技术的应用已经进入连Microsoft自己也才刚刚开始探索的领域。比如11月,超出SQL Server最大同时连接数,MySpace系统崩溃。Benedetto说,这类可能引发系统崩溃的情况大概三天才会出现一次,但仍然过于频繁了,以致惹人恼怒。一旦数据库罢工,"无论这种情况什么时候发生,未缓存的数据都不能从SQL Server获得,那么你就必然看到一个'意外错误'提示。"他解释说。 去年夏天,MySpace的Windows 2003多次自动停止服务。后来发现是操作系统一个内置功能惹的祸——预防分布式拒绝服务攻击(黑客使用很多客户机向服务器发起大量连接请求,以致服务器瘫痪)。MySpace和其他很多顶级大站点一样,肯定会经常遭受攻击,但它应该从网络级而不是依靠Windows本身的功能来解决问题——否则,大量MySpace合法用户连接时也会引起服务器反击。 "我们花了大约一个月时间寻找Windows 2003服务器自动停止的原因。"Benedetto说。最后,通过Microsoft的帮助,他们才知道该怎么通知服务器:"别开枪,是友军。" 紧接着是在去年7月某个周日晚上,MySpace总部所在地洛杉矶停电,造成整个系统停运12小时。大型Web站点通常要在地理上分布配置多个数据中心以预防单点故障。本来,MySpace还有其他两个数据中心以应对突发事件,但Web服务器都依赖于部署在洛杉矶的SAN。没有洛杉矶的SAN,Web服务器除了恳求你耐心等待,不能提供任何服务。 Benedetto说,主数据中心的可靠性通过下列措施保证:可接入两张不同电网,另有后备电源和一台储备有30天燃料的发电机。但在这次事故中,不仅两张电网失效,而且在切换到备份电源的过程中,操作员烧掉了主动力线路。 2007年中,MySpace在另两个后备站点上也建设了SAN。这对分担负荷大有帮助——正常情况下,每个SAN都能负担三分之一的数据访问量。而在紧急情况下,任何一个站点都可以独立支撑整个服务,Benedetto说。 MySpace仍然在为提高稳定性奋斗,虽然很多用户表示了足够信任且能原谅偶现的错误页面。 "作为开发人员,我憎恶Bug,它太气人了。"Dan Tanner这个31岁的德克萨斯软件工程师说,他通过MySpace重新联系到了高中和大学同学。"不过,MySpace对我们的用处很大,因此我们可以原谅偶发的故障和错误。" Tanner说,如果站点某天出现故障甚至崩溃,恢复以后他还是会继续使用。 这就是为什么Drew在论坛里咆哮时,大部分用户都告诉他应该保持平静,如果等几分钟,问题就会解决的原因。Drew无法平静,他写道,"我已经两次给MySpace发邮件,而它说一小时前还是正常的,现在出了点问题……完全是一堆废话。"另一个用户回复说,"毕竟它是免费的。"Benedetto坦承100%的可靠性不是他的目标。"它不是银行,而是一个免费的服务。"他说。 换句话说,MySpace的偶发故障可能造成某人最后更新的个人资料丢失,但并不意味着网站弄丢了用户的钱财。"关键是要认识到,与保证站点性能相比,丢失少许数据的故障是可接受的。"Benedetto说。所以,MySpace甘冒丢失2分钟到2小时内任意点数据的危险,在SQL Server配置里延长了"checkpoint"操作——它将待更新数据永久记录到磁盘——的间隔时间,因为这样做可以加快数据库的运行。 Benedetto说,同样,开发人员还经常在几个小时内就完成构思、编码、测试和发布全过程。这有引入Bug的风险,但这样做可以更快实现新功能。而且,因为进行大规模真实测试不具可行性,他们的测试通常是在仅以部分活跃用户为对象,且用户对软件新功能和改进不知就里的情况下进行的。因为事实上不可能做真实的加载测试,他们做的测试通常都是针对站点。 "我们犯过大量错误,"Benedetto说,"但到头来,我认为我们做对的还是比做错的多。" MySpace Tech Roster January 16, 2007 By David F. Carr 我的一些思考: ====================================== mysql、sqlserver和oracle的各自的优劣并不是哪个人,几句话能说得出来的。为了自己方便,留个印子,想到哪儿说道哪儿。且不说他们的免费收费、价格高低(虽然这个是老板很在乎的),单从技术角度讲,sqlserver是不能跨平台的软肋让他很受局限,现在我们几百台服务器也就只有10台SDC(访问日志分析系统)是用的windows,其他的全部都是linux的,所以,我们无缘sqlserver;mysql没有事务功能(貌似新出的版本在往这个方向走),但是他的速度挺快,有数据量的瓶颈(听说腾迅都还在用mysql,所以数据量是个瓶颈这个和上面那个兄台想法一样:对于技术来说,优劣只在于开发者本身),现在,mysql和盘阵已经逐渐从我们的系统里面干掉,几乎全部都用上oracle+EMC了,这也是因为业务量变得很大了,但是最重要的是东家有钱和我们的技术还很薄弱,oracle,我觉得一个很理性但是不人性的系统,因为只是按照文档在上面做了2次stream,和一个话单系统,所以,都还不是真正懂得他的很多细节上的东西,PL\sql,分布式,连乱七八糟的基础都是连门都还没去敲。 跑题了。分布式系统,我们经历了从myspace的第一个阶段直接到最后阶段的更新(诸多原因掺杂),2web+2app+1DB+1SAN,当业务量到达一定量、技术还无法跟上的时候,我们便变成了web群+app群+DB群+EMC+分析+统计……我觉得可以说是一个网站最后的必经之路,因为无论技术在好,1个孙悟空也搞不定81个妖怪吧。 Fedora(华为2008-02-26自杀插曲)昨天晚上下班时找了台DELL的740,装了Fedora,感觉DELL的机器还是不错的。 早上来开机,遇到了不少问题,慢慢解决ing。 1、分辨率800x600,重新安装驱动了看看能解决否。 2、鼠标箭头无法显示,so: 2.1.vi /etc/X11/xorg.conf 3、中文输入法,so: 3.1.google拼音,但是,没有看到linux版本滴,可惜。 3.2.顺便google一把,找到了http://www.fcitx.org/main/,down下来之后开始安装。 3.3.文档区有详细的说明,but,安装啥都完成,启动起来之后确没有办法使用,伤了一下心,算了,language切换成中文,然后直接自带的,哎。 4、mercury-messenger,QQ,MAIL,Session,……一大堆东西慢慢装。 插曲:突然有第一时间的消息,离我们不远的成都天府软件园B7栋华为公司有员工跳楼身亡 然后很快就有很多图片和消息传播过来了,哎,看来这个世界还真是郁闷呢。 讨论还在继续,偶也继续。 5、分辨率。 linux的X界面装好了之后很多有只能最高开到800X600,可以在“显示”里面的硬件里面把你显示器的牌子型号选上了之后,重启X界面,OK,呵呵,分辨率一堆一堆的来。 6、貌似暂时没有其他的东西了,可以干活了,米西米西的。 NFS几出郁闷的问题最近遇到了几个郁闷的问题。 第一次,NFS无法mount,老是提示: failed, reason given by server: Permission denied 然后到处google,有人说export,有的说权限777,但是其他的都很符合规则,弄了大半天,郁闷了,直接 /etc/init.d/nfs stop /etc/init.d/portmap restart /etc/init.d/nfs start 操。直接mount上了,郁闷,为啥呢?服务不稳定,不可科学啊,nfs是很稳定的东西吧,so,下次遇到问题的时候,大家不妨restart一把。 第二次,就是刚才,同事让帮忙把一个nfs server的东西mount到另一个nfs server上去,呵呵: [root@localhost /]# /etc/init.d/nfs start 直接“RPC MTAB does not exist”,goog吧, 看了http://blog.sina.com.cn/s/blog_4a8d7b4901007smj.html和http://linux.chinaunix.net/bbs/thread-899823-1-1.html 两位仁兄的东西,然后自己一气得调整, Jan 31 10:43:51 localhost kernel: nfsd: unexporting all filesystems 很多错误都找到了,但是最后一次restart的时候还是:Error: RPC MTAB does not exist. 怪了,靠,直接另外一台机器上去mount试一把: [root@openfiler data]# mount -t nfs -o rw ××××××××:/data/ back/ 不报错,进去操作,啥都OK,同事的大数据跑了2把,没发现问题,又被郁闷了。。哎。。玄妙啊玄妙。回去看看基础,鸟哥私房菜,最近发现的,牛人啊:http://linux.vbird.org/linux_server/0330nfs.php#before(NFS的基础的东西)
哦,还有新学的个东西:sqlldr: TERMINATED BY X '09' // 以十六进制格式 '09' 表示的 linux过滤文本查找目录下的所有文件中是否含有某个字符串 |
|
|