Ceph手动部署要点

虽然现在preferred的安装方式是采用ceph-deploy,简化了安装了流程,而且便于日后的维护升级。但是手动走一遍有利于新手理解一些Ceph的概念。这篇文章总结一下我几次手动部署的步骤,特别注意了一下官方文档中不清楚了错误的地方。 (针对10.2.x Jewel,12.2.x Luminous 参见Ceph Luminous 安装要点) 0. 安装 至少在Hammer版,Ceph的rpm少包含了一个重要的依赖,在CentOS上导致使用init script的时候会报: /etc/init.d/ceph: line 15: /lib/lsb/init-functions: No such file or directory 需要安装redhat-lsb,只有这个坑,其他的直接yum或者自己构建即可。 需要提醒的是,国内使用官方yum源可能很慢,可以使用国内的镜像源,例如阿里或网易。 1. Bootstrap monitors 首先要初始化monitors,这是最复杂的步骤,有了mon集群之后,其他集群就可以很方便地加入mon管理的节点拓扑了。 1.1 需要的东西 fsid: uuidgen cluster name monitor name: hostname -s,注意,下面所提及的命令中的hostname,都是执行命令的机器的短hostname,即hostname -s,所以为了区分节点,建议使用FQDN,比如node1.cluster1.ceph,这样该机的短hostname即为node1 monitor map:monmaptool mointor keyring:monitor之间使用密钥通信,初始化mon时需要使用密钥生成的keyring administrator keyring:创建管理用户client.admin 1.2 具体步骤 创建第一个节点,后面的节点因为在这个节点中已经生成了相关文件,会省略一些步骤。 创建/etc/ceph/{cluster name}.conf,最小模板: [global] fsid = {fsid} mon initial members = {hostname}[,{hostname}] mon host = {ip}[,{ip}] 创建 mon keyring: ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon.
Read more...

FastDFS与Ceph的比较

研究分布式存储只看Ceph是不够的,想有个横向对比,看看各有什么优缺点,从而深入对Ceph和分布式存储的理解。我司图片存储使用的是FastDFS,所以从它看起。 因为没有真正使用过,只是为了了解概念,所以浅尝辄止,参考资料比较单一,可能存在误解,里面甚至有我的很多猜测、思考和问题,请想了解FastDFS的同学绕道。 本质差别 FastDFS和Ceph的本质区别:FastDFS不是一个对象存储,是个分布式的文件存储,虽然和传统的NAS有差别,但其本质还是文件存储。所以这个对比其实不是那么横向,差别太大了: FastDFS以文件为单位,Ceph以Object为存储单位 FastDFS没有strip文件,而Ceph(fs)把文件分成object分布在OSD中,read时可以并发,FastDFS没有这样的功能,性能受限于单机 FastDFS节点 FastDFS的节点有两种:tracker和storage。 Tracker节点负责协调集群运作,storage上报心跳、记录storage所属group等,角色有点类似于Ceph中的MON。这些信息很少,且都可以通过storage上报获得无需持久化,所以都存储在内存中,也使得tracker的集群佷容易扩展,每个tracker是平等的。 这里我有一个疑问,既然是平等的,如何保障一致性?是几个节点同步的,还是storage上报时要多写? 我的猜测是靠同步的,因为下面介绍了写流程之后,你会发现其实一致性并不是很重要。一会儿我们再回到这个问题。 Storage就是存储节点了。 Storage以group为单位,一个group内的storage互为备份。每个storage可以挂不同的盘到不同的*path*。 这种备份是简单的镜像,所以一个group的总容量是最低的那个server决定的,没有Ceph CRUSH map的自动依据硬盘大小的weight功能。 文件上传后以hash为依据分布在storage的文件夹中。 FastDFS上传过程 上传文件时,tracker会选择一个group,可以配置以下方式: - RR,轮询 - Specified,指定一个group - Load balance,剩余空间多的优先 选定group之后选择一个storage。规则是: RR Order by IP Order by priority,优先级排序 问题:既然group内的storage是镜像的,为什么还要选择一个上传呢,随机一个不都可以吗? 然后选定path,也就是同一台storage上不同的数据盘: RR 剩余空间多优先 Storage生成fileid:base64({storage IP}{create time}{file size}{file crc32}{random number})。 接着选定两级子目录,这个不重要且很简单,只是为了避免同个目录下的文件过多。 生成文件名,包含: - group - 目录 - 两级子目录 - fileid - 文件后缀(客户端指定,区分类型) 一个文件名的例子:group1/M00/00/0C/wKjRbExx2K0AAAAAAAANiSQUgyg37275.h。 FastDFS文件同步 文件写入上文规则选出的一个storage server即返回成功,再由后台线程同步到其他节点。而Ceph的要求是写入主primary OSD之后所有副本比如第二第三OSD完成之后才返回成功,数据安全性更高。 只primary写完就返回,那其它同group的storage什么时候能提供服务?这个要靠是否同步完成来判断。同步的进度靠primary storage的binlog记录,binlog会同步到tracker,读请求时tracker根据同步进度选择可读的storage。
Read more...

基于Jekyll的博客系统

Jekyll其实大家用了很久了,以前我在“自豪地采用Wordpress”,但世界上最好的语言DO $5的plan是实在是跑不起,最近忍无可忍才更换,也顺便换了L家更贵的plan,当然速度也快不少。一些使用心得和注意事项,供比我还后来的人参考。 简介 Jekyll不同于以前用的CMS,它只是一个静态网站生成器 - 但这对于一个博客已经够用了,相比之下CMS对于博客来说太重了。所以Jekyll的优点就是简单,没有数据库,什么都没有。就是你写md,然后它帮你生成html,放到你配置的URL路径对应的path而已。 Jekyll支持一种叫liquid的模板语言,正是靠它通过模板生成了一整个site,很简单的syntax,默认已经选择了minima主题,参考它已有的框架,很简单上手。 没有服务器,怎么发表文章?怎么鉴权?Git作为一种分散式版本管理系统再合适不过,和Jekyll是天造地合,随时随地都可以pull下来添加文章。想要换一个地方部署,只要clone一下。再也不怕转移起来麻烦了。。。 安装 安装中可能遇到的坑: - 执行build时可能说缺少json这个gem,加到Gemfile里,重新bundle install即可 - 用于--watch参数监视fs change自动build的库用到libffi,不知道为什么装了libffi-devel, libffi-static,配了path,ffi的gem即使编译过了在运行时也会报找不到libffi的错,CentOS 7有这个问题,但很少在CentOS 7上写blog和实时review,所以也不需要watch,指定—no-watch即可 基于Github Pages的部署 一开始我使用Github Pages来部署,连自己的server都不用了,还支持自定域名,很好很强大。只需要建一个{用户名}.github.io的repo,然后推上去,Github会自动build。_site这个目录是Jekyll输出build结果的地方,github会帮你build,所以可以放进.gitignore。 为了引入分页,使用了jekyll-paginate plugin,Github Pages支持的gem plugin是有限的,但我有看到jekyll-paginate是支持的,只是不work,还有一些看起来和本地build出来不一样的奇奇怪怪的问题,所以我今晚还是放到我自己的server上部署了,反正都买了,带宽闲着也是闲着。。。如果使用gh,用Jekyll plugin可以这里先查查是否支持。 如果实在不支持又想用Github Pages,没关系啊,Jekyll就是个静态站嘛,本地build好,把刚才说的_site目录推上去,不给他们build就好了呗。 基于自己server的部署 - 使用git hooks 刚才说到两个是用Github Pages的约束:有限的plugin支持,build的结果可能有差异但是却不能debug。所以还是在自己的server上可控一点。 在自己server上也能实现如Github Pages的功能,你只需要push一下,remote就会自动build好,无需先推到central server,然后再ssh上server,再拉下来build。。。只需要自建git repo使用git hooks即可,下面是个官网提供的例子,我做下注释。 需要用到三个文件夹,一个是用来做repo的,即下面的myrepo.git;由于repo里面存的是object,我们需要再在一个临时文件夹,即下面的$HOME/tmp/myrepo,clone到这个文件夹还原成目录方便进行下一步;还有一个放build结果,即对外访问的要写进nginx配置的文件夹,下面是/var/www/myrepo。 laptop$ ssh deployer@example.com server$ mkdir myrepo.git server$ cd myrepo.git server$ git --bare init server$ cp hooks/post-receive.sample hooks/post-receive server$ mkdir /var/www/myrepo 可能有的git版本没有hooks/post-receive.sample这个文件,但这个hook还是有的,不拷贝而是新建一个post-receive文件即可,然后即可将下面几行加入myrepo.git/hooks/post-receive: GIT_REPO=$HOME/myrepo.git TMP_GIT_CLONE=$HOME/tmp/myrepo PUBLIC_WWW=/var/www/myrepo git clone $GIT_REPO $TMP_GIT_CLONE jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW rm -Rf $TMP_GIT_CLONE exit 这样server 端就准备好了,在本地添加server上的repo,再push的时候就会生效了:
Read more...

《我们时代的神经症人格》读书笔记 - 前言

一、霍妮 1.1 生平 卡伦·霍妮(Karen Horney)德裔美国心理学家、精神分析社会文化学派主要代表人物。 在她的回忆中,父亲是一个可怕的人物,他看不起她,认为她外貌丑陋天资愚笨,同样,她感到母亲偏爱哥哥,对她十分冷落。我认为生活在这个环境中可能是她后来发展出自己的女性模式,反对弗洛伊德观点的一个重要诱因。 简单列下生平以反映她的思想随环境的发展: 13岁立志当医生 1901 经过斗争进入中学 1906 先后进入弗莱堡大学、哥廷根大学和柏林大学学医 1915 医学博士,接受精神病学和精神分析训练 1909 结婚 1910 是从弗洛伊德得意门生亚伯拉罕与萨克斯 1917 发表第一篇精神分析论文《精神分析治疗的技术》 思想第一阶段开始 1920 创立柏林精神分析研究所 1932 接受邀请担任美国芝加哥精神分析研究所副所长 思想第二阶段开始 1937 因兴趣不和和她将大部分精力投入到精神分析活动中离婚 1937 《我们时代的神经症人格》 1939 《神经分析新法》 思想第三阶段开始 1943 迁居纽约,创立私人诊所,加盟纽约社会研究新学院(原书逻辑有问题,待考) 1942 《自我分析》 1945 《我们的内心冲突:一种神经症结构理论》 1950《神经症与人的成长:追求自我实现》 晚年 对佛教禅宗感兴趣,与日本禅学大师铃木大拙有交往,病逝前到访日本 1952 年病逝 1.2 思想发展 大致分为三个阶段。 1.2.1 第一阶段 20世纪20年代、30年代早期,即在德国和初到美国期间。 主要关注女性心理学问题,1923年发表《论女性阉割情节起的起源》,1925年弗洛伊德发表《两性解剖差异所带来的心理后果》对其作出批评性回应。 固守传统精神分析理论框架的同时,开始修正弗洛伊德关于女性心理学的观点。反对弗洛伊德视女性为有缺陷、永远具有局限性的女性模式,她提出,女性具有积极的原始性气质和自我评价。摒弃了从男性视角说明女性、以男性标准衡量女性心理发展的做法。脱离了弗洛伊德解剖结构决定命运的信条,强调文化因素是女性问题及其性别定位的重要诱因。 这一阶段她发表了很多才华横溢的论文,但是由于走在时代前面,没有得到充分重视,去世后由凯尔曼汇编成《女性心理学》,女性主义者发现了霍妮,她预示了女性主义者许多观点。 1.2.2 第二阶段 30年代后期,即芝加哥精神分析研究所和纽约精神分析研究所任职期间。 移居美国后霍妮诊治了不同文化背景的患者,开阔了思路。同时受阿德勒(Alfred Adler,著有《自卑与超越》)等精神分析家和美国人类学家、社会学家影响,向更激进方向转变。创立了新的文化神经症理论。美国大萧条使霍妮发现弗洛伊德的理论不适应临床实践,彻底摒弃了弗洛伊德理论的基本前提,强调以文化和人际关系取向来代替弗洛伊德的生物决定论取向,主张文化在精神症的冲突与防御中作用。在《我们时代的精神人格》达到顶峰,《精神分析新法》中,对弗洛伊德的方法全面清算。 1.2.3 第三阶段 40年代后,创建美国精神分析研究所之后。
Read more...

元旦

假期语文作业,《记一个难忘的元旦假期》。

新家第一个小假期,放松且高效。

周日晚去福乐购采购是唯一一次出门,这要在以前绝对要疯在屋里。 天哥都关怀为啥没有去广州跨年啊,不是传统么。

有个自己的窝是不一样。


New Year’s Eve

周六扫除日。 Binary竟然不怕吸尘器,这使我更加确信她其实是只狗。

平日没时间陪主子十分内疚,放假要弥补亲子时光。 不论阅读沙发还是客厅沙发都已经成了Binary的地盘,若想坐代价是给她当枕头,最喜欢是把我手臂蹬开,挤在手臂和躯干之间抱着手臂睡。

2016年最后一轮夕阳下的Binary。


晚餐,土豆排骨,茄子,秋葵脆。

土豆排骨是我招牌菜之一,这次菜汁少了,爱吃这道菜就是因为土豆炖烂成泥,和上菜汁拌进米饭里, 沙沙的绵密口感和肉香能吃十碗饭,没菜汁就可惜了。 秋葵脆是Brook在上海请我吃过的菜式,这次实验一下,可以算是成功, 因为吃起来不错,但试了才恍然大悟饭店里那么脆大概根本不是炸的,是烤出来的。。。


往年跨年我大概穿着睡袍背着手像个成(zhi)功(zhang)人士 站在喜来登的落地玻璃前面感慨时光匆匆, 今年老实坐着看ARIES的论文写笔记,可也毕竟算个节,为了增加节日氛围决定试试把自己灌倒。

0点的时候Apple Music贴心地为我随机到了这首名为《厄运》的歌曲送给我,谢谢谢谢。

结果是两点喝累了也没倒,越喝越精神,刚睡醒似的。倒是论文觉得看不下去了,索然睡去了。

说起喝酒。 我已经是Asahi的脑残粉了,原来觉得喜力和Asahi平起平坐至少,那是因为没一起喝过。 喝完第一罐Asahi之后接着来了一罐进口喜力,发现Asahi不知道比喜力高到哪里去了。 喜力有一股明显的香味,这股香味我觉得出现在啤酒里面就是过度修饰。

Asahi万岁。


New Year’s Day

撸猫,做菜,笔耕不辍。

番茄炒蛋没什么好说的,只是感慨和食堂的霄壤之别,觉得自己再煮多几次饭恐怕就受不了食堂得准备便当盒带饭了。

Steak有得说,这次很成功,毕竟让米其林厨子从福乐购买块牛肉在买电磁炉送的锅上做牛排也是个难事。你们可能觉得生得可怕,可这正是我想要的rare doneness和tenderness,seasoning也不错。经验是,牛肉得提前几个小时拿到冰箱保鲜层,不能太冰。锅太薄了,很容易过热,控制火候。其它奥秘这就不写了,可持续发展,留着将来专写做菜的时候再写


送给Binary一个她一定很喜欢的新年礼物:把伊丽莎白圈去掉了。 带着圈的时候舔不了毛,拿掉之后她第一件事就是舔了一个小时,爱干净的小姑娘。 还有一个带铃铛的藤编球作为康复礼物,似乎不太感冒。


晚上奋斗到凌晨3点,搞定了迁移博客后也是2017年的第一篇:《ARIES数据库恢复算法》。看看长长的参考文献部分就知道写出来不容易了。干杯。


New Year’s Day Observed

撸猫,做菜,笔耕不辍。

九月还在打台风的时候专家说这是厄尔尼诺,预示着今年冬天会很冷。然而都一月份了我在家热得就差要开空调了。天热到Binary懒得调皮,躺在我脚下懒懒地晒了一下午太阳。我在一边看书,简直像在哈瓦那度假,谁去星巴克啊。


继续放毒,上汤皇帝菜,糖醋小排。


晚上趁未到凌晨发表了第二篇博客《递归的魅力 - 定义自然数系和自然数加法》,一篇数学分析笔记。算是一天内产出两篇,并且是不搭界的两个主题。干杯。


所以以前假期非要出门去找个地方坐哪怕是商场里的板凳才能读书工作的毛病,大概只是对居住环境的不满,也证明自己劳心劳力搞出的家算是达到预期了,与其说宅,“恋家”更合适。

很满意,生活工作完美均衡,一言蔽之,充实。

写了这么多,到了收尾也没有2016总结2017展望,因为除了以上琐事,压根儿没打算写这些。

有句歌词我很喜欢,“天地不快不慢不好不坏专心而澎湃”,不管怎样,天地都要转时间都会走,过去的都过去了,未来还没来,认认真真尽力活好现在就好。一定要有什么展望的话,那就是不辜负人“新年快乐”的祝愿吧。加油。

祝愿各位新年快乐 :)

Read more...

递归的魅力 - 定义自然数系和自然数加法

作为Rudin的《数学分析原理》的补充,最近在读《陶哲轩实分析》,读Rudin的时候五体投地,读了《陶实》发现还有更神的。《数分》没有讲自然数和加法乘法,而是直接讲了域的公理,将加法乘法作为公理,然后从戴德金分割讲$\mathbb{R}$,十分乏味。然而《陶实》从Peano公理定义自然数讲起,并且涉及到数学思想,比如公理化构造数系、归纳、递归。读过《陶实》再回去看《数分》会觉得十分清晰。 这里作为一个笔记和民科,总结一下公理化定义自然数系$\mathbb{N}$到自然数加法的过程,一些我们认为理所当然的东西的证明,比如加法交换律结合律的正确性,让工科生,文科生感受一下数学的严谨和递归的魅力(不属于上述两个范围的同学出门左转去看CS类文章谢谢 :P)。 Peano公理 首先引入一种运算,或者说表示方法,学计算机的同学会比较熟悉:$n++$表示n的“自增“,即$n = n + 1$,这个奇怪的等式在数学中不会这么用,一个变量定义两次容易引起混淆,在这里我们取$n++$的值,即$n++$表示紧跟在$n$后面的自然数。 要定义自然数,首先我们要有a priori,即证明前假定为真的东西,就是Peano公理。 公理1:$0$是自然数 公理2:若$n$是自然数,则$n++$也是自然数 接下来就可以用公理1,2递归地给所有自然数定义 $1 := 0++$ $2 := 1++$ 即 $(0++)++$ $3 := 2++$ 即 $((1++)++)$,$((0++)++)++$ 等等 里面的符号:=的意思是“根据定义相等”。 为使自然数系不会因达到一个值之后就回归0(比如计算机中用表示2 bytes(16 bits)表示unsinged,到$65535_{(10)}$即$1111 1111 1111 1111_{(2)}$之后就溢出变0,不懂计算机的也可以想一个可以表示3个数字的里程表,999之后就会变成000)引入另一个公理: 公理3:0不是任何自然数的后继,即$\forall n \in \mathbb{N}, n++ \neq 0$ 这样并没有禁止类似$5 = 6$即$4++ = 5++$的情况,为了保证所有自然数的独特性,引入 公理4:不同自然数有不同后继,即$\forall n,m \in \mathbb{N}, n \neq m$,则$n++ \neq m++$,用逆否命题等价地说,若$n++ = m++$,则$n = m$ 回顾公理1 - 4,我们的公理至此只是定义了自然数,但还没有说类似0.
Read more...

ARIES数据库恢复算法

Algorithms for Recovery and Isolation Exploiting Semantics(ARIES) 是一种针对非强制(no-force,即当事务提交时不强制立刻写入记录所在的磁盘对象)可窃用(steal,即缓存管理器可强制将任意page刷入磁盘)数据库的恢复算法。ARIES的发明者的描述是,ARIES是一种使用写前日志(WAL)的支持细粒度锁和部分回滚的事务恢复方法。 1. ARIES 三原则 先看看ARIES的三个原则: 写前日志(write-ahead logging,WAL):一个对象的任何修改需要先记录在log中,log在对对象的修改写入磁盘前必须写入到稳定的存储中 Redo时重复历史:崩溃重启时,ARIES分析崩溃前的行为,并把系统恢复到崩溃前的状态,然后undo崩溃时未完成的事务 Undo时记录修改:undo事务时所作的修改写入log,防止不断重启时重复这些操作 2. WAL 为什么要no-force?为什么不直接去修改磁盘上存储的对应的对象,而是先去写WAL呢?我们先看看WAL这个更大的概念。 WAL是一种提供ACID中的原子性和持久性的机制。ACID忘掉的可以点链接复习一下,题外话,以前觉得原子性/atomicity的叫法令人摸不着头脑,这个词和atom(原子)同源自古希腊语一个表示“不可再分”的哲学概念的词,所以原子性就表示一个事务的一系列操作是不可分的一个整体。 WAL除了可以保证原子性,也能提升写性能。因为数据库文件分散在磁盘中,一般场景下update将造成许多随机I/O,造成性能极差,但以追加形式写log文件则是顺序I/O,比随机I/O性能高很多。 Log的形式分为undo(回滚)和redo(重做)两种。Undo log记录事务修改前状态,根据undo log可以将该log造成的更改撤销;Redo log记录事务修改后状态,根据redo log,可以将该log造成的更改重做。一般同时使用两种log,MySQL InnoDB使用的是redo log,磁盘中的ib_logfile0, ib_logfile1就是InnoDB的redo log file。 因为undo / redo log使数据库可以在事务当中恢复到事务前状态,所以说WAL可以保证原子性。 WAL不仅用在数据库中,在文件系统中类似的机制叫journaling,将来有机会可以写写Ceph的Filestore的journal机制。 3. 日志 每个log条目都按序列号(Log Sequence Number,LSN)顺序排列的。为获取写log必要的信息,我们需要两个数据结构: 脏页表(dirty page table, DPT) 事务表(transaction table, TT) 脏页表记录了所有被修改的胆识还未刷入磁盘的脏页和造成脏页的第一个序列号。事务表记录了所有正在进行的事务和它们写入的最后一条log的序列号。 我们以<LSN,事务ID,页ID,Redo,Undo,前一SN>的形式记录log。其中前一LSN指向这个事务产生的前一条log,当事务被取消,就可以用这一项从后往前遍历来回滚。 恢复和回滚未完成的事务时会写补偿log(Compensation Log Record, CLR)来记录被回滚的操作。CLR的一般形式是<LSN,事务ID,页ID,重做,前一SN>。 4. 恢复 恢复的三个阶段: 分析,从logfile里面计算所有需要的信息 Redo,将数据库恢复到崩溃现场,包括崩溃时还未提交的事务 Undo,将未提交的事务回滚,恢复一致性 4.1 分析 分析过程中,buffer中的脏页和崩溃时正在进行的事务将被从log中识别,DPT和TT恢复到崩溃时状态,具体过程如下。
Read more...

博客转移至Jekyll

博客改用jekyll构建并基于Github pages部署。

将逐渐有选择迁移旧文,为示新旧之别,旧文标题将以[T0]作前缀,并选择一个日期将所有旧文置于该日期下,若可以确定到旧文发表日期,以update time呈现。

Read more...

NPR Ted Radio Hour: How We Love

拓展了我的podcast列表,不光是新闻了。今天坐在树下吹着微凉的秋风听NPR TED Radio Hour,很棒,把同主题的TED talk整理成访谈的形式做成一期,比一集一集看有效果。

这期谈love,第一个讲者是个费城的程序媛,人家征婚填的都是能讲流利日语和javascript。她祖母告诉她,爱都是在你最不经意的时候发生的,作为程序媛当然不能信邪,她首先从费城人口里计算出了其实她这个年龄段的适龄犹太男人其实没多少,然后去网上征婚网站,将自己想要对象的参数定量,自己做了一套评分系统,还创建了十个女性账号研究男性的偏好,使自己的profile看起来更受欢迎😂嗯,这个故事告诉我们量化和概率的重要,以及会写javascript也是可以找到伴侣的。

第二个talk从生物化学角度讲,拿MRI(核磁共振)研究love,说人是有喜欢的类型的,遇到的时候就会触发脑子的化学变化,让你感到更乐观、充满能量,一切在瞬间发生,你不知所措,但就觉得尼玛哪儿不对劲儿。Dopamine大家都听说过,多巴胺,这个物质其实控制的是人脑的奖励机制,成瘾就是靠这个机制,动力、注意力、渴望都由这个机制控制,你见到你的女/男神的时候的活动脑区,和吸了可卡因的时候一样,这就是为啥你对你的男神女神这么上瘾啊。

那么为什么你会觉得某个人比另一些人好?心理学家会跟你说,人们倾向喜欢和自己有类似社会活动背景、类似智商、类似样貌等级的人,但是这个结论不全对。这个讲者将由受不同化学物质控制的性格大致分成四种(dopamine 多巴胺、serotonin 5-羟色胺,testosterone 睾丸酮,estrogen 雌性激素(🙄️看来一本GRE没白背)),对三千多万人做了调查(大数据啊)。调查结果显示,多巴胺多的,即好奇、创造力强、自发、充满活力的性格,和5-羟色胺比较多的,即比较传统守旧的性格,喜欢和自己类似的人;然而睾丸酮多的,即较强的分析、逻辑、坚决果断的人,和雌性激素多的,即想像力强、直觉强,有较强社交能力的人,却喜欢和自己性格相反的人。 失恋的人的活动脑区和痛苦一致,确切地讲,是牙痛。然后,其实还会有和坠入爱河时一样的感觉,你以为你会忘了她/他,但是被抛弃的人只会对对方爱得更深,这不是鸡汤,这是MRI说的啊,这时负责奖励机制的,控制渴望、动机、注意力的脑区活动更加强大。 为什么人会需要爱?亿万年前人类开始直立,女性需要把小孩抱在怀里,女性需要一个伙伴来帮忙带小孩儿了,逐渐进化了人类大脑回路,产生了需要爱情、依赖感的人性。柏拉图说过,the god of love, lives in the state of need。没有啥,就是需要,就是一种自我失衡,就像饥饿和口渴,是不可避免的。Love的能力就嵌在我们脑中,而我们的挑战是,没有蛀牙,不,是懂得彼此。

题外话,觉得听podcast很好,已经成了我的一种生活习惯,比书、视频更加随时随地,可以高效利用好交通、吃饭的碎片时间,我觉得也会记得更牢。

Read more...