diff --git a/404.html b/404.html index 5ef6ccae..eb8e73f3 100644 --- a/404.html +++ b/404.html @@ -1,11 +1,9 @@ --- layout: page -title: "404 Page Not Found" +title: "Under Construction" permalink: 404.html --- -
Sorry, we've misplaced that URL or it's pointing to something that doesn't -exist. Please +
Just waiting for some spare time to fill in the details. Please -head back home to try finding it again.
+expore other stuff and hopefully I will have something useful on this page soon. diff --git a/Gemfile b/Gemfile index cc84bdd7..e954ebc7 100644 --- a/Gemfile +++ b/Gemfile @@ -4,5 +4,5 @@ require 'json' require 'open-uri' versions = JSON.parse(open('https://pages.github.com/versions.json').read) -gem 'github-pages', versions['github-pages'] -gem 'rake' \ No newline at end of file +gem 'github-pages', versions['github-pages'], group: :jekyll_plugins +gem 'rake' diff --git a/README.md b/README.md index c8364b70..a0f23be0 100644 --- a/README.md +++ b/README.md @@ -1,132 +1,5 @@ -# Gaya Jekyll Theme +# Welcome to my GitPages source code repo -Modern responsive theme made for jekyll blogging platform. -Gaya is a simple theme build from ground up with the focus of performance. -The theme itself quickly adapts to the users device, so it looks great on -smartphones, tablets, desktops or even the large monitors. +I cloned this theme from [Gaya](http://gayan.me/gaya/) and modified as per my need. -- Ability to change theme color at any time with any color. -- Easy customizable menu navigation. -- SEO Friendly -- Embed image, YouTube/Vimeo video or SoundCloud audio to your post. - ---- - - - -### Need Help? - -Please submit as an -[issue](https://github.com/web-create/harmony/issues/new), I am happy -to response back. - -## How to install/run - -1. [Fork](https://github.com/gayanvirajith/gaya) this repository. -2. Clone it: git clone https://github.com/YOUR-USERNAME/gaya. -3. If you completely new to jekyll, please read more about [Jekyll](http://jekyllrb.com/) and [Github pages](https://help.github.com/articles/using-jekyll-with-pages). -4. Change your directory into cloned repository. -5. Run `bundle install` -6. Edit the _config.yml on root directory. Change `url` property to to -`http://127.0.0.1:4000` since you are going to run on localhost. -7. Run the jekyll server by having: `bundle exec jekyll serve --baseurl ''` or `rake preview` - -Try to locate your browser at [http://localhost:4000](http://localhost:4000). - -Note: If you are a windows user please refer this nice website - http://jekyll-windows.juthilo.com/ by Julian Thilo to configure ruby + jekyll on windows. - - -## Theme options and configurations - -Following options can be seen within the file `_config.yml`. More information -about configuration can be found on the [Jekyll Documentationn][jekyll] - -### General settings - -| Property name | Description | ------------- | ------------- -`title` | The title of your blog shown in the site header along with the logo. -`tagline` | The site tagline also shown in the site header along with the title. -`email` | The email address associated with blog/site. -`description` | The site description used to show author's/site's description in the top of the sidebar. -`baseurl` | The subpath of your site, e.g. /blog/. More information can be found in the [Jekyll Documentationn][jekyll]. -`url` | The base host name & protocol for your site. More information can be found in the [Jekyll Documentationn][jekyll]. -`logourl` | Path to main logo image. -`author_thumbnail` | Path to author's thumbnail image. -`author` | Name of the author. -`paginate` | Number of posts to show per page, More information can be found in the [Jekyll Documentationn][jekyll]. - -### Social profile links - -| Property name | Description | ------------- | ------------- -`github` | GitHub link (Leave empty to exclude) -`twitter` | Twitter link (Leave empty to exclude) -`facebook` | Facebook link (Leave empty to exclude) -`gplus` | Google plus link (Leave empty to exclude) -`dribble` | Dribble link (Leave empty to exclude) -`pinterest` | Pinterest link (Leave empty to exclude) - -### Theme settings - -| Property name | Description | ------------- | ------------- -`highlight_color` | The main highlight/theme color of the site. You can put any color as a hex color. The configured color will be applied to sidebar, anchor links, buttons etc. -`show_share_buttons` | Set as True/False to enable or disable Post share option. -`show_author_info` | Set as True/False to enable or disable the author information on a post. -`disqus_shortname` | Disqus Short name for Disqus comments. Leave empty to disable comments. -`google_analytics_key` | Enter your Google analytics tracking ID to enable analytic support. -`google_webmaster_key` | Enter your Google web-master verification key to verify your site with the web-master tool. (This is an alternative way of verifying your site with the web-master tool, the general way is to upload a file to your server.) - - -### Page level configurations - -These configurations can be found within the top section of the each page, see the a post under `_posts` directory for example. - -| Property name | Description | ------------- | ------------- -`banner_image` | Specify the image name eg: `sample-banner-image-1.jpg` for banner image for the post. Jekyll system tries to locate the image under `assets/images`. So make sure you place all banner images under assets/images. -`banner_video` | If you want to embed `Youtube/Vimeo` Video or `SoundCloud` audio, Specify the resource within single quotes. Please have a look on example post in `_posts/2014-12-14-what-is-nodejs.md` to see how we embed YouTube video. -`comments` | Set as True/False, if false will disable comments for current page/post. -`browser_title` | SEO property. Use this property if you want to display different browser title other than default page title. Please have a look on example post under `_posts/2014-12-14-what-is-nodejs.md` to see how we used the property. -`meta_description` | SEO property. Use this property If you want to have unique meta description for each post. See the example post on `_posts/2014-12-14-what-is-nodejs.md` to see how we used the property. - -### Sidebar navigation configurations - -As jekyll supports data files, **Gaya** theme uses `YAML` [data file][df] to load sidebar navigation items. You could find the `main-nav.yaml` data file under `_data/` directory. You could add any number of menu items by modifying `main-nav.yaml`. - -An example of `main-nav.yaml`: - -``` -- title: "About me" # Title/Caption of the menu item - href: "/about" # the page where it pointed -- title: "Blog Archive" - href: "/archive" -``` - -At some point you want to link an external URL, in that case you could edit the `_includes/sidebar.html` file. See the following example: - -``` - -``` - -## License - -(The MIT License) - -Copyright (c) 2014 Gayan Virajith - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -[jekyll]: http://jekyllrb.com -[df]: http://jekyllrb.com/docs/datafiles/ +Thanks to the folks who spend time on creating the theme. This looks great!. diff --git a/_config.yml b/_config.yml index e665d466..cc1dff3e 100644 --- a/_config.yml +++ b/_config.yml @@ -1,27 +1,26 @@ # Site settings -title: Your awesome title -tagline: And Tagline -email: gayanvirajith@gmail.com +title: Anil Vishnoi +tagline: Computer Engineer, Open Source Enthusiast, Photographer +email: vishnoianil@gmail.com description: > # this means to ignore newlines until "baseurl:" - Hi, I’m a professional UI/UX designer and web developer. - I love being minimal and creative. -baseurl: "/gaya" # the subpath of your site, e.g. /blog/ -url: "http://gayan.me" # the base hostname & protocol for your site + Computer engineer working in the domain of disruptive networking technologies. +baseurl: "/avishnoi.github.io" # the subpath of your site, e.g. /blog/ +url: "http://127.0.0.1:4000" # the base hostname & protocol for your site logourl: /assets/images/logo.png # Site logo -author: "Tom Warlker" -author_thumbnail: "/assets/images/avatar.jpg" # Author avatar +author: "Anil Vishnoi" +author_thumbnail: "/assets/images/avatar-1.jpg" # Author avatar # Theme customization - please change from the defaults! theme: # Color for sidebar bar, links, etc highlight_color: "#205081" #205081" # "#272935" # Social media links, leave blank to ignore - social: - github: gayanvirajith - twitter: gayanvirajith - facebook: gayanvirajith - gplus: +gayanvirajith - # dribble: gayanvirajith - pinterest: gayanvirajith + social: + github: vishnoianil + twitter: vishnoianil_ + facebook: vishnoianil + gplus: +vishnoianil + dribble: + pinterest: # Enable share buttons on post footer show_share_buttons: true @@ -30,12 +29,27 @@ theme: show_author_info: true # Disqus comments manager - shortname - # disqus_shortname: gaya-webcreate + disqus_shortname: vishnoianil # Google Analytics/Webmaster key, leave blank to ignore - google_analytics_key: - google_webmaster_key: + google_analytics_key: + google_webmaster_key: +footer-links: + dribbble: + email: dmm@1-4-5.net + facebook: dmm613 + flickr: + github: davidmeyer + instagram: + linkedin: davidmeyer4 + pinterest: + rss: # just type anything here for a working RSS icon + twitter: dmm613 + stackoverflow: # your stackoverflow profile, e.g. "users/50476/bart-kiers" + youtube: # channel/
Archived Posts
+{{ currentyear }}
- {% capture year %}{{currentyear}}{% endcapture %} + {% capture year %}{{currentyear}}{% endcapture %} {% endif %} -- {{ post.title }}
-{% endfor %}
-
+
+
+ +Let me explain a bit about the above setup. There are 2 VMs running OpenStack service. Both of these VM has connected to each other using two networks (Management and Data Network). **Having two networks is not a requirement, you can use one network as well**. I would recommend to configure static IP to the OpenStack VMs, so they don't have to DHCP it. Apart from these 2 OpenStack VMs, there are 3 Docker container with the IPs - MGMT-IP-1, MGMT-IP-2 and MGMT-IP-3. All these VMs and Dockers are attached to one bridge (`management`) and has IP address from the same subnet that is served by the `management` bridge. + +Following figure shows how it looks like when all the container start running Karaf instances: + ++
+
+ +All 3 Docker containers will run OVSDB Karaf container and they will communicate to each other using their MGMT-IP-X IPs to form the cluster. All these Karaf containers will pick up artifacts from the .m2 repo that exist on the host machine. **None of these containers have their own local .m2 repo.** + +With the above picture as a reference, this is how your development control flow will look like: + +* `git clone` OVSDB project master branch code on the host machine (one time task) +* Make changes to the code +* Build the code with `mvn clean install -DskipTests` - It will generate latest artifacts and put in the local .m2 repo of the host machine +* Login to your containers and restart the Karaf container and it should pick up your latest artifact from the host .m2 repo and execute the latest code +> Assuming that your cluster setup is already done once and all the three docker containers are up and running. + +Now lets get to the fun part. + +## **Setup Instructions** + +### **Pre-requisite:** + +* Host machine running Ubuntu (or any other Linux distro) +* 8 gig+ RAM +* KVM should be installed. You can try even with virtual box, but you will have to take care of the networking by yourself. Following instructions are only for KVM. + +### **Install Docker Engine on Ubuntu Trusty 14.04** +Docker installation requires `sudo` access for the host machine login user. If you have `sudo` access, fire following command to install the Docker engine: + +`sudo apt-get update` + +`sudo apt-get install curl` + +`curl -sSL https://get.docker.com/ | sh` + +Provide `sudo` password if it prompts and then, it will download and install Docker and its required dependencies. + +To verify the installation fire following command + +`sudo docker run hello-world` + +Above command will download hello-world Docker image from the DockerHub and run it in the container. If you reached successfully till this point, Docker is up and running on your host machine. + +To avoid the use of `sudo` with the `docker` command, create a Unix group called `docker` and add users to it. When the `docker` daemon starts, it makes the ownership of the Unix socket read/writable by the `docker` group. + +`sudo usermod -aG docker+
+
+ +### **Let's spawn the containers** +Time to spawn the containers using the image you just downloaded. Open a terminal and fire following three commands to spawn three containers with different names. + +`docker run -d -t -v ~/.m2:/root/.m2/ --hostname=ovsdb-cluster-node-1 --name=ovsdb-cluster-node-1 avishnoi/odl-ovsdb-cluster-node-image:2.0.0` + +`docker run -d -t -v ~/.m2:/root/.m2/ --hostname=ovsdb-cluster-node-2 --name=ovsdb-cluster-node-2 avishnoi/odl-ovsdb-cluster-node-image:2.0.0` + +`docker run -d -t -v ~/.m2:/root/.m2/ --hostname=ovsdb-cluster-node-3 --name=ovsdb-cluster-node-3 avishnoi/odl-ovsdb-cluster-node-image:2.0.0` + +Above commands create container with name (`--name=ovsdb-cluster-node-X`) and host name (`-hostname=ovsdb-cluster-node-X`) using the image `avishnoi/odl-ovsdb-cluster-node-image:2.0.0` and mount your host machine's local .m2 repository (`-v ~/.m2:/root/.m2`) to `/root/.m2/` directory in the container and run the container in detached (`-d`) mode. + +> You can choose host name (`--hostname`)& container name (`--name`) of your choice. +After executing above commands, If you fire `docker ps` command on your host machine, you should see output similar to following output + ++
+
+ +All these container run in background (`-d`), so to connect to the console of the container fire following command + +`docker exec -it ovsdb-clsuter-node-X /bin/bash` + +Above command will give you access to the shell prompt of the container. It should look as follows + ++
+
+ +### **Setup 3 node OVSDB cluster** +Login to all the three containers using the above command. Each container has only one interface so pick up the IP address of these containers (assume those IPs are MGMT-IP-1, MGMT-IP-2, MGMT-IP-3). Please make sure that all the containers are reachable from each other. Now follow the below instructions to setup each container. + +`cd /home/avishnoi/clustering/ovsdb/be/scripts/` + +I created very simple (probably buggy :) ) script to configure the clustering in local node and it expect following input + +`./configure-node.sh- +
++ {{ post.title }} -
- {% if (post.categories.size > 0 %} - - {{ post.categories | array_to_sentence_string }} - | - {% endif %} - - {{ post.date | date: "%b %-d, %Y" }}{% if post.author %} • {{ post.author }}{% endif %}{% if post.meta %} • {{ post.meta }}{% endif %} - + + {{ post.date | date: "%b %-d, %Y" }} + {% if post.type %} • {{ post.type }}{% endif %} + {% if post.tags %} • {{ post.tags }}{% endif %} + {% if post.meta %} • {{ post.meta }}{% endif %} +
{{ post.excerpt }} - + Continue reading » @@ -45,19 +43,19 @@{% if paginator.total_pages > 1 %}
-
+
{% if paginator.next_page %}
- Older
+ Older
{% else %}
Older
{% endif %}
-
+
{% if paginator.previous_page %}
Newer
{% else %}
Newer
- {% endif %}
-
+ {% endif %}
+
{% endif %}
diff --git a/papers.md b/papers.md
new file mode 100644
index 00000000..e82b4976
--- /dev/null
+++ b/papers.md
@@ -0,0 +1,34 @@
+---
+layout: default
+title: Research Papers
+permalink: /papers/
+---
+
+
+
+
+ {% for paper in site.categories.papers %}
+ {% assign post_url = paper.url | append: '/' | replace: '//', '/' | prepend: site.baseurl | prepend: site.url %}
+
+
+
+ {% endfor %}
diff --git a/papers/_posts/2012-01-03-identity.md b/papers/_posts/2012-01-03-identity.md
new file mode 100644
index 00000000..4fb6d4df
--- /dev/null
+++ b/papers/_posts/2012-01-03-identity.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "Identity: A data center network fabric to enable co-existence of identical addresses"
+date: "2012-01-03"
+tags: "VM-Migration-across-data-centers, co-existence-of-addresses, OpenFlow, Multi-tenancy, SDN"
+comments: true
+permalink: 2012/01/identity
+download: http://ieeexplore.ieee.org/document/6151323/
+authors:
+- Vijay Mann
+- Kalapriya Kannan
+- Anilkumar Vishnoi
+- Shivkumar Kalyanaraman
+type: Research Paper
+conference: "IEEE COMSNET 2012"
+---
+
+Seamless virtual machine (VM) mobility within and across data centers brings its own set of problems. One of these problems is enabling co-existence of identical or overlapping layer-2 and layer-3 addresses in a single data center network. The motivation for this problem comes from a number of compelling scenarios. These include the need to backup and restore or replicate multi-tier applications that comprise of multiple VMs from one data center to another or within the same data center. This requires significant network reconfiguration costs as IP addresses of replicated VMs may clash with other existing IP addresses in the data center or with other replicas of the same VMs. Similarly, when multiple data centers need to be consolidated through a single data center interconnect, their address ranges may overlap. Lastly, cloud providers need to ensure that various customers can backup and restore their VMs which can have potentially conflicting addresses with other customers' VMs without requiring time consuming network reconfiguration efforts.
+
+In this paper, we present Identity - a data center network fabric that enables co-existence of hosts or VMs with identical layer 2 and layer 3 addresses. We use pseudo addresses to uniquely identify each host or VM and employ address resolution and duplicate detection techniques to enable co-existence of hosts and VMs with identical addresses. We leverage the centralized programmable control plane offered by OpenFlow and present the design and implementation of our scheme in Mininet. We provide an experimental evaluation of our scheme and validate that its average latency and throughput performance is as good as a default setup.
diff --git a/papers/_posts/2012-04-16-crossroads.md b/papers/_posts/2012-04-16-crossroads.md
new file mode 100644
index 00000000..f1184cdf
--- /dev/null
+++ b/papers/_posts/2012-04-16-crossroads.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "CrossRoads: Seamless VM mobility across data centers through software defined networking"
+date: "2012-04-16"
+tags: "Online VM Migration, OpenFlow, SDN"
+comments: true
+permalink: 2012/04/crossroads
+download: http://ieeexplore.ieee.org/document/6211886/
+authors:
+- Vijay Mann
+- Anilkumar Vishnoi
+- Kalapriya Kannan
+- Shivkumar Kalyanaraman
+type: Research Paper
+conference: "IEEE NOMS 2012"
+---
+
+Most enterprises today run their applications on virtual machines (VMs). VM mobility - both live and offline, can provide enormous flexibility and also bring down OPEX (Operational Expenditure) costs. However, both live and offline migration of VMs is still limited to within a local network because of the complexities associated with cross subnet live and offline migration. These complexities mainly arise from the hierarchical addressing used by various layer 3 routing protocols. For cross data center VM mobility, virtualization vendors require that the network configuration of the new data center where a VM migrates must be similar to that of the old data center. This severely restricts wide spread use of VM migration across data center networks. For offline migration, the above limitations can be overcome by reconfiguring IP addresses for the migrated VMs. However, even this effort is non-trivial and time consuming as these IP addresses are embedded in various configuration files inside these VMs. As enterprises grow and new data centers emerge in different geographic locations, there is a need to interconnect these data centers in a way that allows seamless VM mobility.
+
+In this context, we present CrossRoads - a network fabric that provides layer agnostic and seamless live and offline VM mobility across multiple data centers. We leverage software defined networking and implement an OpenFlow based prototype of CrossRoads. CrossRoads extends the idea of location independence based on pseudo addresses proposed in recent research to work with a control plane overlay of OpenFlow network controllers in various data centers. We evaluate CrossRoads on an innovative testbed that leverages nested virtualization to emulate two data centers. Our results confirm that CrossRoads has negligible performance overhead as compared to a Default layer 2 network - its average performance was no worse than 2.3% as compared to Default fabric across all experiments. In some experiments, it even outperformed the Default by up to 30%.
diff --git a/papers/_posts/2012-04-16-itrack.md b/papers/_posts/2012-04-16-itrack.md
new file mode 100644
index 00000000..b3081bc2
--- /dev/null
+++ b/papers/_posts/2012-04-16-itrack.md
@@ -0,0 +1,18 @@
+---
+layout: post
+title: "iTrack: Correlating user activity with system data"
+date: "2012-04-16"
+tags: "System-Monitoring, Error-Detection, Live-error-reporting"
+comments: true
+permalink: 2012/04/itrack
+download: http://ieeexplore.ieee.org/document/6212031/
+authors:
+- Vijay Mann
+- Anilkumar Vishnoi
+type: Research Paper
+conference: "IEEE NOMS 2012"
+---
+
+Human error has been identified one of the major factors behind system outages and network downtime in a number of previous research papers and surveys. Gartner statistics show that almost 40% of unplanned application downtime is caused due to operator errors such as unintentional changes to network configuration resulting in a network outage, patch installations, service restart, etc. Yet, system admin activities on production IT systems are rarely properly logged and monitored. Existing tools to track user activities either produce too much information without any hints of a potential outage scenario or too little information to be useful in a meaningful way.
+
+In this paper, we describe the design and implementation of iTrack - a framework for monitoring user activities and correlating them with system data. iTrack makes use of commonly available native monitoring and diagnostic utilities on operating systems to monitor systems events as well as system admin activity, correlates these two sets of information and categorizes the activity as potentially abnormal or harmful based on its impact on the system in terms of file system, network and process activities. We demonstrate the usefulness of iTrack through several use cases and real world examples such as detecting and diagnosing system outages in real time, conducting post mortem analysis of outages, and maintaining audit logs. Our experimental evaluation of iTrack confirms that its monitoring overhead in terms of CPU time, activity completion time and data generated is within the tolerance range of most production systems. In cases, where the overhead was found to be unacceptable, we detect the underlying cause and provide solutions. These solutions improve performance by up to 20% to 90%, in terms of managed server and iTrack server CPU utilization, respectively and by up to 2 times in terms of completion time of certain system admin activities on the managed server.
diff --git a/papers/_posts/2012-05-21-remedy.md b/papers/_posts/2012-05-21-remedy.md
new file mode 100644
index 00000000..be6b2de0
--- /dev/null
+++ b/papers/_posts/2012-05-21-remedy.md
@@ -0,0 +1,34 @@
+---
+layout: post
+title: "Remedy: Network-aware steady state VM management for data centers"
+date: "2012-05-21"
+tags: "VM-Migration, VM-Placement, QoS, Traffic-Engineering"
+comments: true
+permalink: 2012/05/remedy
+download: https://pdfs.semanticscholar.org/76fa/329c0d88fb812fdbcd7e58784149b6bc0d82.pdf
+authors:
+- Vijay Mann
+- Akanksha Gupta
+- Partha Dutta
+- Anilkumar Vishnoi
+- Parantapa Bhattacharya
+- Rishabh Poddar
+- Aakash Iyer
+type: Research Paper
+conference: "IFIP Networking 2012"
+---
+
+Steady state VM management in data centers should be network-aware so that VM migrations do not degrade network
+performance of other flows in the network, and if required, a VM migration can be intelligently orchestrated to
+decongest a network hotspot. Recent research in network-aware management of VMs has focused mainly on an optimal
+network-aware initial placement of VMs and has largely ignored steady state management.
+
+In this context, we present the design and implementation of Remedy. Remedy ranks target hosts for a VM migration based on the associated cost
+of migration, available bandwidth for migration and the network bandwidth balance achieved by a migration. It models
+the cost of migration in terms of additional network traffic generated during migration. We have implemented Remedy
+as an OpenFlow controller application that detects the most congested links in the network and migrates a set of VMs
+in a network aware manner to decongest these links. Our choice of target hosts ensures that neither the migration
+traffic nor the flows that get rerouted as a result of migration cause congestion in any part of the network. We
+validate our cost of migration model on a virtual software testbed using real VM migrations. Our simulation results
+using real data center traffic data demonstrate that selective network aware VM migrations can help reduce unsatisfied
+bandwidth by up to 80-100%.
diff --git a/papers/_posts/2012-10-22-vmpatrol.md b/papers/_posts/2012-10-22-vmpatrol.md
new file mode 100644
index 00000000..194030c7
--- /dev/null
+++ b/papers/_posts/2012-10-22-vmpatrol.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "VMPatrol: Dynamic and automated QoS for virtual machine migrations"
+date: "2012-10-22"
+tags: "Live-VM-Migration, VM-Placement, QoS, Traffic-Engineering, OpenFlow, SDN"
+comments: true
+permalink: 2012/10/vmpatrol
+download: http://ieeexplore.ieee.org/document/6380009/
+authors:
+- Vijay Mann
+- Anilkumar Vishnoi
+- Aakash Iyer
+- Parantapa Bhattacharya
+type: Research Paper
+conference: "IEEE CNSM 2012"
+---
+
+As more and more data centers embrace end host virtualization and virtual machine (VM) mobility becomes commonplace, we explore its implications on data center networks. Live VM migrations are considered expensive operations because of the additional network traffic they generate, which can impact the network performance of other applications in the network, and because of the downtime that applications running on a migrating VM may experience. Most virtualization vendors currently recommend a separate network for VM mobility. However, setting up an alternate network just for VM migrations can be extremely costly and thus presents a barrier to seamless VM mobility. Therefore, it is apparent that VM migrations should be orchestrated in a network-aware manner with appropriate QoS controls such that they do not degrade network performance of other flows in the network while still being allocated the bandwidth they require for successful completion within the specified time lines.
+
+In this context, we present VMPatrol - a QoS framework for VM migrations. VMPatrol uses a cost of migration model to allocate a minimal bandwidth for a migration flow such that it completes within the specified time limit while causing minimal interference to other flows in the network. Our implementation and experimental evaluation of VMPatrol on real and virtual software testbeds demonstrates that automated bandwidth reservation can reduce the impact of migrations on other flows in the network to a negligible level.
diff --git a/papers/_posts/2013-01-07-living-on-the-edge.md b/papers/_posts/2013-01-07-living-on-the-edge.md
new file mode 100644
index 00000000..4633a90e
--- /dev/null
+++ b/papers/_posts/2013-01-07-living-on-the-edge.md
@@ -0,0 +1,19 @@
+---
+layout: post
+title: "Living on the edge: Monitoring network flows at the edge in cloud data centers"
+date: "2012-01-03"
+tags: "Scalable-Flow-Monitoring, sFlow, NetFlow, SDN"
+comments: true
+permalink: 2013/01/living-on-the-edge
+download: http://ieeexplore.ieee.org/document/6465540/
+authors:
+- Vijay Mann
+- Kalapriya Kannan
+- Sarvesh Bidkar
+type: Research Paper
+conference: "IEEE COMSNET 2013"
+---
+
+Scalable network wide flow monitoring has remained a distant dream because of the strain it puts on network router resources. Recent proposals have advocated the use of coordinated sampling or host based flow monitoring to enable a scalable network wide monitoring service. As most hosts in data centers get virtualized with the emergence of the cloud, the hypervisor on a virtualized host adds another network layer in the form of a vSwitch (virtual switch). The vSwitch now forms the new edge of the network.
+
+In this paper, we explore the implications of enabling network wide flow monitoring inside virtual switches in the hosts. Monitoring of network flows inside the server vSwitch can enable scalability due to its distributed nature. However, assumptions that held true for flow monitoring inside a physical switch need to be revisited since vSwitches are usually not limited by the same level of resource constraints that exist for physical switches and routers. On the other hand, vSwitches do not implement flow monitoring in hardware, as it is done in some physical switches. We present the design and implementation of EMC2 - a scalable network wide monitoring service for cloud data centers. We also conduct an extensive evaluation of various switch based flow monitoring techniques and share our findings. Our results indicate that while layer-3 flow monitoring protocols such as NetFlow can give a very good network coverage without using too many resources, protocols that sample packet headers (such as sFlow) need to be carefully configured. A badly configured sFlow vSwitch can degrade application network throughput by up to 17% and can also choke the management network by generating monitoring data at a very high rate.
diff --git a/papers/_posts/2013-05-27-ncp.md b/papers/_posts/2013-05-27-ncp.md
new file mode 100644
index 00000000..279fea85
--- /dev/null
+++ b/papers/_posts/2013-05-27-ncp.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "NCP: Service replication in data centers through software defined networking"
+date: "2013-05-27"
+tags: "Network-based-replication, service-replication, distributed-replication, OpenFlow, SDN"
+comments: true
+permalink: 2013/05/crossroads
+download: http://ieeexplore.ieee.org/document/6573033/
+authors:
+- Vijay Mann
+- Kalapriya Kannan
+- Anilkumar Vishnoi
+- Aakash S. Iyer
+type: Research Paper
+conference: "IEEE IM 2013"
+---
+
+Enterprise systems often use replication technology to keep multiple instances of applications or data stores in synchronization. Existing data replication techniques are primarily storage based and are usually applied at coarse time granularity. Furthermore, they can not be used to achieve service replication that requires state synchronization in addition to disk synchronization.
+
+In this context, we present NCP: a system that uses network based replication to enable service replication in data centers through software defined networking. NCP overcomes challenges associated with network based replication through the use of server virtualization, multicore and software defined networking (SDN) technologies. NCP allows its users to identify flows based on network addresses and ports and to specify a replication target for each such flow. NCP OpenFlow controller, then, automatically determines the ideal switch for replication, install redirection rules as well as special routing rules for replicated packets in the network. NCP middlebox appliance captures the redirected packets, orders them to reconstruct a network session and replays them on to a primary server and a set of replica servers that were chosen as the target of replication. Our experimental evaluation of NCP demonstrates that network based replication can enable scalable service replication in real time with minimal overheads.
diff --git a/papers/_posts/2014-05-26-smarttime.md b/papers/_posts/2014-05-26-smarttime.md
new file mode 100644
index 00000000..3d890821
--- /dev/null
+++ b/papers/_posts/2014-05-26-smarttime.md
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "Effective switch memory management in OpenFlow networks"
+date: "2014-05-26"
+tags: "SDN, Resource-Optimization, OpenFlow, TCAM"
+comments: true
+permalink: 2014/05/effective-switch-memory-management-in-OpenFlow-networks
+download: http://researcher.watson.ibm.com/researcher/files/in-rishpodd/SmartTime.pdf
+authors:
+- Anilkumar Vishnoi
+- Rishabh Poddar
+- Vijay Mann
+- Suparna Bhattacharya
+type: Research Paper
+conference: "ACM DEBS 2014"
+---
+
+OpenFlow networks require installation of flow rules in a limited capacity switch memory (Ternary Content Addressable Memory or TCAMs, in particular) from a logically centralized controller. A controller can manage the switch memory in an OpenFlow network through events that are generated by the switch at discrete time intervals. Recent studies have shown that data centers can have up to 10,000 network flows per second per server rack today. Increasing the TCAM size to accommodate these large number of flow rules is not a viable solution since TCAM is costly and power hungry. Current OpenFlow controllers handle this issue by installing flow rules with a default idle timeout after which the switch automatically evicts the rule from its TCAM. This results in inefficient usage of switch memory for short lived flows when the timeout is too high and in increased controller workload for frequent flows when the timeout is too low.
+
+In this context, we present SmartTime - an OpenFlow controller system that combines an adaptive timeout heuristic to compute efficient idle timeouts with proactive eviction of flow rules, which results in effective utilization of TCAM space while ensuring that TCAM misses (or controller load) does not increase. To the best of our knowledge, SmartTime is the first real implementation of an intelligent flow management strategy in an OpenFlow controller that can be deployed in current OpenFlow networks. In our experiments using multiple real data center packet traces and cache sizes, SmartTime adaptive policy consistently outperformed the best performing static idle timeout policy or random eviction policy by up to 58% in terms of total cost.
diff --git a/papers/_posts/2015-01-06-haven.md b/papers/_posts/2015-01-06-haven.md
new file mode 100644
index 00000000..1bd7809e
--- /dev/null
+++ b/papers/_posts/2015-01-06-haven.md
@@ -0,0 +1,19 @@
+---
+layout: post
+title: "HAVEN: Holistic load balancing and auto scaling in the cloud"
+date: "2015-01-06"
+tags: "SDN, Load-Balancing, Auto-Scaling"
+comments: true
+permalink: 2015/01/haven
+download: https://people.eecs.berkeley.edu/~rishabhp/publications/Haven.pdf
+authors:
+- Rishabh Poddar
+- Anilkumar Vishnoi
+- Vijay Mann
+type: Research Paper
+conference: "IEEE COMSNET 2015"
+---
+
+Load balancing and auto scaling are important services in the cloud. Traditionally, load balancing is achieved through either hardware or software appliances. Hardware appliances perform well but have several drawbacks. They are fairly expensive and are typically bought for managing peaks even if average volumes are 10% of peak. Further, they lack flexibility in terms of adding custom load balancing algorithms. They also lack multi-tenancy support. To address these concerns, most public clouds have adopted software load balancers that typically also comprise an auto scaling service. However, software load balancers do not match the performance of hardware load balancers. In order to avoid a single point of failure, they also require complex clustering solutions which further drives their cost higher.
+
+In this context, we present HAVEN - a system for holistic load balancing and auto scaling in a multi-tenant cloud environment that is naturally distributed, and hence scalable. It supports multi-tenancy and takes into account the utilization levels of different resources as part of its load balancing and auto scaling algorithms. HAVEN leverages software-defined networking to ensure that while the load balancing algorithm (control plane) executes on a server running network controller software, the packets to be load balanced never leave the data plane. For this reason, HAVEN is able to provide performance at par with a hardware load balancer while still providing the flexibility and customizability of a software load balancer. We validate HAVEN on a hardware setup and our experiments confirm that it achieves high performance without any significant overheads.
diff --git a/patents.md b/patents.md
new file mode 100644
index 00000000..e74ba0c4
--- /dev/null
+++ b/patents.md
@@ -0,0 +1,33 @@
+---
+layout: default
+title: Patents
+permalink: /patents/
+---
+
+
+
+
+ {% for patent in site.categories.patents %}
+ {% assign post_url = patent.url | append: '/' | replace: '//', '/' | prepend: site.baseurl | prepend: site.url %}
+
+
+
+ {% endfor %}
diff --git a/patents/_posts/2009-08-04-tracing-the-execution-control-flow-of-a-java-method.md b/patents/_posts/2009-08-04-tracing-the-execution-control-flow-of-a-java-method.md
new file mode 100644
index 00000000..27045b32
--- /dev/null
+++ b/patents/_posts/2009-08-04-tracing-the-execution-control-flow-of-a-java-method.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: "Method and Appratus to trace the execution control flow of Java method"
+date: "2009-08-04"
+tags: "Java, Debugging, JVM, Control-flow-tracing"
+comments: true
+permalink: 2009/08/tracing-the-execution-control-flow-of-a-java-method
+download: https://priorart.ip.com/IPCOM/000185977
+inventors:
+- Anilkumar Vishnoi
+- Prashanth K Nageshappa
+- Venkataraghavan Lakshminarayanachar,
+type: Patent
+grant-date: "2009-08-04"
+publication-number: IPCOM000185977D (IP.com)
+application-date:
+application-number:
+related-paper:
+---
+
+Applications comprise of methods which further comprise of control blocks (if else, while, switch etc.) that are taken or not taken at runtime depending on the runtime conditions. More often than not, while tracking specific entities like a structure variable or an Object instance, it becomes imperative to understand the following : 1) Methods which create and use the variable/instance 2) the actual Control Blocks within these methods that were traversed for creation or use of the object/variable. The above information is important to understand the specifics of what path was traversed to create and use the instance/variable - so that the debugging/diagnostics/profiling could concentrate on only those paths and narrow down the scope of analysis,thereby expediting the same.
diff --git a/patents/_posts/2014-06-03-identity-patent.md b/patents/_posts/2014-06-03-identity-patent.md
new file mode 100644
index 00000000..6120474c
--- /dev/null
+++ b/patents/_posts/2014-06-03-identity-patent.md
@@ -0,0 +1,22 @@
+---
+layout: post
+title: "Enabling co-existence of hosts or virtual machines with identical addresses"
+date: "2014-06-03"
+tags: "VM-Migration-across-data-centers, co-existence-of-addresses, OpenFlow, Multi-tenancy, SDN"
+comments: true
+permalink: 2014/06/identity-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US8745196.pdf
+inventors:
+- Anilkumar Vishnoi
+- Kalapriya Kannan
+- Shivkumar Kalyanaraman
+- Vijay Mann
+type: Patent
+grant-date: "2014-06-03"
+publication-number: US8745196 B2
+application-date:
+application-number: US20130145008 A1
+related-paper: "2012/01/identity"
+---
+
+A method for enabling co-existence of multiple machines with identical addresses within a single data center network. The method includes assigning a unique pseudo identifier to each machine in the network that can be used for routing a packet to a destination machine, replacing a sender media access control address on an address resolution protocol request with a pseudo identifier of the sender at an edge network switch, retrieving a private network identifier from a mapping table based on the sender pseudo identifier and returning a pseudo identifier for the destination address based on the private network identifier, and replacing the pseudo identifier of the destination address with an actual identifier at a destination edge network switch for routing the packet to the destination machine.
diff --git a/patents/_posts/2014-12-02-ncp-patent.md b/patents/_posts/2014-12-02-ncp-patent.md
new file mode 100644
index 00000000..d224a48a
--- /dev/null
+++ b/patents/_posts/2014-12-02-ncp-patent.md
@@ -0,0 +1,23 @@
+---
+layout: post
+title: "Providing replication and fail-over as a network service in data centers"
+date: "2014-12-02"
+tags: "Network-based-replication, service-replication, distributed-replication, OpenFlow, SDN"
+comments: true
+permalink: 2014/12/ncp-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US8904224.pdf
+inventors:
+- Anilkumar Vishnoi
+- Kalapriya Kannan
+- Ravi Kothari
+- Shivkumar Kalyanaraman
+- Vijay Mann
+type: Patent
+grant-date: "2014-12-02"
+publication-number: US8904224 B2
+application-date:
+application-number: US20140025986 A1
+related-paper: "2013/05/crossroads"
+---
+
+Techniques for providing session level replication and fail-over as a network service include generating a replication rule that replicates network traffic destined for a primary server from an originating server to a network controller and installing said rule in a switch component, identifying flows from the originating server to the primary server, replicating each incoming data packet intended for the primary server to the network controller for replication and forwarding to replica servers, determining said primary server to be in a failed state based on a number of retransmissions of a packet, to selecting one of the replica servers as a fail-over target, and performing a connection level fail-over by installing a redirection flow in the switch component that redirects all packets destined to the primary server to the network controller, which forwards the packets to the replica server and forwards each response from the replica server to said originating server.
diff --git a/patents/_posts/2015-02-03-emulating-data-center-networks-patent.md b/patents/_posts/2015-02-03-emulating-data-center-networks-patent.md
new file mode 100644
index 00000000..75b21993
--- /dev/null
+++ b/patents/_posts/2015-02-03-emulating-data-center-networks-patent.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: "Emulating a data center network on a single physical host with support for virtual machine mobility"
+date: "2015-02-03"
+tags: "Network-Emulation, VM-Migration-In-Emulated-Environment, Nested-Virtualization"
+comments: true
+permalink: 2015/02/emulating-data-center-networks-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US8949830.pdf
+inventors:
+- Anilkumar Vishnoi
+- Kalapriya Kannan
+- Vijay Mann
+type: Patent
+grant-date: "2015-02-03"
+publication-number: US8949830 B2
+application-date:
+application-number: US20130263118 A1
+related-paper:
+---
+
+Methods and arrangements for emulating a data center network. A first end host and a second end host are provided. A base hypervisor is associated with each of the first and second end hosts, and the first and second end hosts are interconnected. A virtual hypervisor is associated with at least one virtual machine running on at least one of the base hypervisors, and virtual hypervisors are interconnected within one of the first and second end hosts. A virtual machine is nested within the virtual hypervisor, and the virtual machine is migrated from one virtual hypervisor to a destination virtual hypervisor to further be nested within the destination virtual hypervisor.
diff --git a/patents/_posts/2015-03-03-itrack-patent.md b/patents/_posts/2015-03-03-itrack-patent.md
new file mode 100644
index 00000000..d7dca41d
--- /dev/null
+++ b/patents/_posts/2015-03-03-itrack-patent.md
@@ -0,0 +1,22 @@
+---
+layout: post
+title: "Systems and methods for fast detection and diagnosis of system outages"
+date: "2015-03-03"
+tags: "System-Monitoring, Error-Detection, Live-error-reporting"
+comments: true
+permalink: 2015/03/itrack-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US8972783.pdf
+inventors:
+- Anilkumar Vishnoi
+- Manish Gupta
+- Ravi Kothari
+- Vijay Mann
+type: Patent
+grant-date: "2015-03-03"
+publication-number: US8972783 B2
+application-date:
+application-number: US20130061092 A1
+related-paper: "2012/04/itrack"
+---
+
+Methods and arrangements for detecting and diagnosing system outages. A system outage is ascertained and aberrant user activities are categorized, as possible contributors to the system outage, based on system impact. User activities and system impact are learned, and user activities and system impact are compared against predetermined rules. A system outage alert is generated, and a user activity responsible for the system outage is displayed.
diff --git a/patents/_posts/2015-03-24-crossroads-patent.md b/patents/_posts/2015-03-24-crossroads-patent.md
new file mode 100644
index 00000000..8276b25d
--- /dev/null
+++ b/patents/_posts/2015-03-24-crossroads-patent.md
@@ -0,0 +1,22 @@
+---
+layout: post
+title: "Interconnecting data centers for migration of virtual machines"
+date: "2015-03-24"
+tags: "Online-VM-Migration, OpenFlow, SDN"
+comments: true
+permalink: 2015/03/crossroads-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US8990371.pdf
+inventors:
+- Anilkumar Vishnoi
+- Kalapriya Kannan
+- Shivkumar Kalyanaraman
+- Vijay Mann
+type: Patent
+grant-date: "2015-03-24"
+publication-number: US8990371 B2
+application-date:
+application-number: US20130061092 A1
+related-paper: "2012/04/crossroads"
+---
+
+Methods and arrangements for facilitating virtual machine migration across data centers. A virtual machine is designated for migration from a first data center to a second data center, the virtual machine including a real identifier. A pseudo identifier is assigned to the virtual machine, and the pseudo identifier is mapped to the real identifier at a controller of the first data center. The real identifier is replaced in a data packet with the pseudo identifier for a routing task. Communication is maintained between the controller of the first data center and a controller of the second data center, and the controllers are synchronized to update a correct location of the virtual machine. The virtual machine is migrated from the first data center to the second data center.
diff --git a/patents/_posts/2015-08-04-haven-patent.md b/patents/_posts/2015-08-04-haven-patent.md
new file mode 100644
index 00000000..cf28ba4e
--- /dev/null
+++ b/patents/_posts/2015-08-04-haven-patent.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: "A System and Method for Holistic Load Balancing and Auto Scaling in the Cloud Using Software Defined Networking"
+date: "2015-08-04"
+tags: "SDN, Load-Balancing, Auto-Scaling"
+comments: true
+permalink: 2015/08/haven-patent
+download: https://priorart.ip.com/IPCOM/000242675
+inventors:
+- Anilkumar Vishnoi
+- Rishabh Poddar
+- Vijay Mann
+type: Patent
+grant-date: "2015-08-04"
+publication-number: IPCOM000242675D (IP.com)
+application-date:
+application-number:
+related-paper: 2015/01/haven
+---
+
+This article describes Haven – a system for holistic load balancing and auto scaling in a multi-tenant cloud environment. It takes into account the utilization levels of different resources as part of its load balancing and auto scaling algorithms. Haven is able to provide performance at par with a hardware load balancer while still providing the flexibility and customizability of a software load balancer.
diff --git a/patents/_posts/2016-05-24-smarttime-patent.md b/patents/_posts/2016-05-24-smarttime-patent.md
new file mode 100644
index 00000000..1376670c
--- /dev/null
+++ b/patents/_posts/2016-05-24-smarttime-patent.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: "Controller based network resource management"
+date: "2016-05-24"
+tags: "SDN, Resource-Optimization, OpenFlow, TCAM"
+comments: true
+permalink: 2016/05/smarttime-patent
+download: https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US9350678.pdf
+inventors:
+- Anilkumar Vishnoi
+- Naga R. Samineni
+- Vijay Mann
+type: Patent
+grant-date: "2016-05-24"
+publication-number: US9350678 B2
+application-date:
+application-number: US20150200864 A1
+related-paper: "2014/05/smarttime"
+---
+
+According to embodiments of the disclosure, methods, apparatuses, and computer products for controller based network resource management are disclosed. The method may include receiving a flow at a network controller, determining a flow parameter for the flow, and determining, via the network controller, an idle timeout for a flow rule, corresponding to the flow based on the flow parameter. Determining a previous idle timeout for the flow in response to determining that the flow has been received before, and determining an activity factor for the flow rule in response to the previous idle timeout being greater than or equal to the second value. The apparatus may be a network controller including a processor, and a memory configured to receive a flow, determine a flow parameter for the flow, and determine an idle timeout for the flow rule based on the flow parameter.
Research Papers
++ + {{ paper.title }} + +
+ ++ + {{ paper.date | date: "%b %-d, %Y" }} + {% if paper.tags %} • {{ paper.tags }}{% endif %} + {% if paper.meta %} • {{ paper.meta }}{% endif %} + +
+ + {{ paper.excerpt }} + + Continue reading » + +Patents
++ + {{ patent.title }} + +
++ + {{ patent.date | date: "%b %-d, %Y" }} + {% if patent.tags %} • {{ patent.tags }}{% endif %} + {% if patent.meta %} • {{ patent.meta }}{% endif %} + +
+ + {{ patent.excerpt }} + + Continue reading » + +