The idea of creating an Exadata simulator arose at Oracle Day 2011 Istanbul. One of my friends was trying to fix a virtual machine in a hurry (right before his presentation), he said his “fake Exadata” crashed. He was just joking but I wondered if it’s possible to build an Exadata Simulator using virtual Box (or any other virtualization software). I googled and found nothing useful but I started to work on it.
An important point is, simulating Exadata does not mean simulating all features of Exadata Database Machine. The key features of Exadata Database Machine are infiniband connections and Exadata Storage Servers (the offloading capabilities and Flash Cache). It’s obvious that we do not need to simulate infiniband. All we need is to simulate “Exadata Storage Servers”.
Smart scanning, storage indexes, hybrid columnar compression, I/O resource manager, smart flash cache are all handled by the Exadata Storage Server “Software”. Although it’s called Oracle Exadata Database “Machine”, its heart is the Exadata Storage Server “Software”. You may say that all hardware needs software but the Exadata software is not an embedded one, it’s just an application running on Oracle Linux 5.x 64bit.
I found a way to download the Exadata Storage Server Software. It took about 3 days to install it to a virtual box, and 1 week to solve the problem about mapping physical “disks” to cell disks. By the way, I haven’t modified any executable file nor script. So it was a clean installation. Then I created an ASM disk group using my “fake” Exadata Storage, and started to test the features of Exadata Storage Server.
I’ve noticed an interesting thing about Exadata Storage Server Software. It detects that it’s running on a virtual/non-Exadata machine and reports it as a “fake hardware” 🙂 So it seems that Oracle intentionally did not put an hardware-lock to Exadata Storage Server Software.
CellCLI> list cell detail
makeModel: Fake hardware
upTime: 0 days, 0:04
Well, I should mention that there’s a problem with my Exadata Simulator. I did tens of tests with different data, but I couldn’t make “storage indexes” work. I found some articles and create same sample data, and do same queries but my Exadata Simulator never used storage indexes.
When I was trying to map physical disks to cell disks, one of my friends said that he read an article of Arup Nanda about simulating Exadata. I know that article. It was about performing the Oracle Exadata simulation in SQL Performance Analyzer, but I wanted to check it again. I googled for “Exadata Simulator” (it seems “Exadata Simulator” are the right keywords to search), and I found an article which says Oracle has an Exadata Simulator which is used in Exadata Training. It explains why Exadata Storage Server Software runs on a non-Exadata harware. Oracle probably wanted to run it as a simulator. I also learned that it’s possible to download Exadata installation ZIP files from Oracle Software Delivery Cloud. By the way, my friends (probably access to this simulator) never told me about it, it seems they are good at keeping secrets 🙂
In short, it’s possible to download Exadata Software from Oracle Software Delivery Cloud (edelivery.oracle.com – ZIP files of latest versions are not password protected). You also get “Official” Exadata Documents when you download the ZIP files. With some work, you can install Exadata Storage Server Software partially to any Oracle Linux 5.x 64bit running on Virtual Box (or any other virtualization software) and build a virtual Exadata Storage Server. I don’t know the legal restrictions so I can’t write a step by step guide but I’m sure that people will start to build their own Exadata Simulators because now they know it’s possible.
Additional Info (1): I said I had problems with storage indexes, but after some tweaks on parameters, I made it work. It seems exadata storage cell software decides not to create storage indexes if the storage node has low memory.
Additional Info (2): Although software downloaded from e-delivery.oracle.com is free to use for education, Oracle says it’s illegal to run exadata storage server software on a non-exadata hardware. So I deleted my simulator. Please do not ask me to share it or the instructions to build it.