OpenStack奇葩配置:Flat network with external DHCP

最近对实验室的实验用OpenStack环境进行调整,遇到的最大的阻力来自于系楼网络的特殊性:系楼网络采用强制DHCP的模式,这就意味着我没有办法通过手工设定IP地址的方式来使用虚拟机——即使这个IP地址是可用的。

OpenStack似乎没有针对这种情况的网络模式(即使FlatManager也不行),因为所有的网络模式都需要在虚拟机创建时就可以确定虚拟机的IP,这一点在系楼的网络中是做不到的,同时在系楼中也不能做到拥有可以自己管理的预留IP,所以floating IP的概念也拜拜了。

折腾了一段时间以后总算是找到了一种非常规的解决方案:在FlatManager的基础上通过合并内部网和外部网来达到把虚拟机和物理服务器置于同一网络中的目的。

注:下文中所有配置均针对icehouse版本。

继续阅读:

在LVM上修改卷大小

实验室的服务器是CentOS6.4的系统,默认采用了LVM。这带来了很大的便利,灵活的卷调整是其中之一。有关于LVM的介绍在这里

碰巧需要对卷大小进行一次调整,CentOS默认安装为”/home”分配了较大的卷而”/”分配了较小的卷,这不符合目前实验室的使用需求,因此需要对卷大小进行调整,过程记录如下。

继续阅读:

Largest Rectangle in Histogram

Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
histogram
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3].
histogram_area
The largest rectangle is shown in the shaded area, which has area = 10 unit.

For example,
Given height = [2,1,5,6,2,3],
return 10.

题目链接在这里

继续阅读:

Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.

Return a deep copy of the list.

题目链接在这里

题目要求对链表进行复制,不过这个链表稍微有点特殊:在每一个节点中除了指向下一个节点的指针,还有一个指向链表中随机节点的指针,如下:

这个链表看起来大概是这个样子:

带有随机指针的链表

带有随机指针的链表

这个随机指针对链表的拷贝造成了不小的麻烦…

继续阅读:

Single Number

Given an array of integers, every element appears twice except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

题目链接在这里

这是一道很有意思的题目,大意是说在一个整型数组中,所有的数字都出现了两次,只有一个数是例外,找出这个数。

乍一看感觉很简单啊,开个数组计数就好了~可惜题目还要求要在不使用额外空间的情况下找到解,这就有点蛋疼了…如果使用二分查找倒是不会用到额外空间,可是时间复杂度为O(nlogn),又不符合题目要求的线性复杂度…

该怎么办呢?该怎么办呢?

继续阅读:

来自Swift的hello,world!

一觉醒来,所有的新闻媒体都充斥着Swift,不过这个Swift可不是那个女歌手Swift,而是apple在WWDC2014上刚刚发布的新编程语言:Swift

WWDC2014推出Swift编程语言

WWDC2014推出Swift编程语言

Swift是什么?

突然冒出一个新语言,这感觉…还是先来看看苹果怎么说:

Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

是不是有一种不明觉厉的感觉!简单来说Swift是一个运行效率高、并且具有多种现代语言特性、可以和Objective-C一起使用的用来开发iOS和OS X应用的新语言。

继续阅读: