{"id":10616,"date":"2017-11-08T08:30:02","date_gmt":"2017-11-08T07:30:02","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/"},"modified":"2017-11-08T08:30:02","modified_gmt":"2017-11-08T07:30:02","slug":"automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/","title":{"rendered":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture &#8211; (part 01)"},"content":{"rendered":"<p>After having worked with OVM on various architectures I can say that it is a good technology to easily build virtualized environments for production applications. Because it is based on XEN and has simple ways to deal with existing storage (FC, ISCSI, NFS, &#8230;) and networking solution (bond, lacp, &#8230;) it is a robust and convenient way to virtualized IT infrastructures keeping &#8220;bare-metal&#8221; performance.<br \/>\nBesides, it is an hard partitioning technology which is compliant with the Oracle licensing policies for partitioned environments to control CPU counting for licensing.<\/p>\n<p>The aim of this post is to demonstrate how simple it is to build an HA virtualized architecture with the OVM Manager command line tool only (<a href=\"https:\/\/docs.oracle.com\/cd\/E64076_01\/E64086\/html\/index.html\" target=\"_blank\" rel=\"noopener\">doc link<\/a>). So we will create 1 VM\u00a0on each server including all Oracle OS , network and storage\u00a0requirements to run\u00a0RAC 12.2.<\/p>\n<p><strong>Initial state:<\/strong><\/p>\n<ul>\n<li>2 physical servers installed with Oracle VM Server 3.4 (namely OVS, installation procedure <a href=\"https:\/\/docs.oracle.com\/cd\/E64076_01\/E64078\/html\/vmiug-ovs-install-x86.html\" target=\"_blank\" rel=\"noopener\">here<\/a> ) to host VMs including:\n<ul>\n<li>5 NICs on each (no bounding for the example but recommended for production system)\n<ul>\n<li>eth0: administrative network connected to the organization&#8217;s administrative network<\/li>\n<li>eth1: application network dedicated to application<\/li>\n<li>eth2: storage network cabled to the storage for ISCSI LUNs and NFS accessibility<\/li>\n<li>eth3: cabled between both OVS Servers for\u00a0RAC interconnect link #1\/2<\/li>\n<li>eth4: cabled between both OVS Servers for\u00a0RAC interconnect link #2\/2<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>1 server with Oracle VM Manager 3.4 yet installed (installation procedure <a href=\"https:\/\/docs.oracle.com\/cd\/E64076_01\/E64078\/html\/vmiug-manager-install.html\" target=\"_blank\" rel=\"noopener\">here<\/a>)\n<ul>\n<li>eth0: administrative network connector to the organization&#8217;s administrative network<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>1 storage system (Here we are going to use a ZFS Storage appliance)<\/li>\n<\/ul>\n<ul>\n<li>1 OVM Template from Oracle Corp. (available <a href=\"http:\/\/www.oracle.com\/technetwork\/server-storage\/vm\/database-templates-12c-11gr2-1972804.html\" target=\"_blank\" rel=\"noopener\">here<\/a>)<\/li>\n<\/ul>\n<p><strong>Summary<\/strong><\/p>\n<ul>\n<li><a href=\"#step_00\">Step 0: Connect to the OVM Manager client<\/a><\/li>\n<li><a href=\"#step_01\">Step 1: Discover OVS servers<\/a><\/li>\n<li><a href=\"#step_02\">Step 2: Discover file server<\/a><\/li>\n<li><a href=\"#step_03\">Step 3: Discover NAS Storage<\/a><\/li>\n<li><a href=\"#step_04\">Step 4: Creation of a server pool<\/a><\/li>\n<li><a href=\"#step_05\">Step 5: Add servers to the server pool<\/a><\/li>\n<li><a href=\"#step_06\">Step 6: Creation of a repository to store VMs&#8217;s configuration files and to import the Oracle Template<\/a><\/li>\n<li><a href=\"#step_07\">Step 7: Create VMs called rac001 and rac002 for my 2 nodes RAC<\/a><\/li>\n<li><a href=\"#step_08\">Step 8: Network definition for RAC interconnect and application network<\/a><\/li>\n<li><a href=\"#step_09\">Step 9: Shared disks attachment to VMs for RAC ASM<\/a><\/li>\n<\/ul>\n<p><a id=\"step_00\"><\/a><br \/>\n<strong>Step 0:<\/strong> Connect to the OVM Manager client<\/p>\n<p>Because the client connect through SSH protocol (default port number 10000, user admin), connecting to the OVM Manager client can be done from wherever you have network connectivity with OVM Server.<br \/>\nOVMCLI is a separate service from OVM Manager running on the OVM Manager server. Here I check the OVMCLI service status and I connect from within the VM Manager server.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">service ovmcli status\n\nssh -l admin localhost -p 10000\n\nOVM&gt;                                            # --&gt; prompt for OVM\nOVM&gt; ?                                          # --&gt; to show which action can be done\nOVM&gt; list ?                                     # --&gt; to show which options are available for command \"list\"\nOVM&gt; set OutputMode={ Verbose | Sparse | Xml }  # --&gt; to make output matching your automation style<\/pre>\n<p><a id=\"step_01\"><\/a><br \/>\n<strong>Step 1:<\/strong> discover OVS servers<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">discoverServer ipAddress=192.168.56.101 password=oracle takeOwnership=Yes\ndiscoverServer ipAddress=192.168.56.102 password=oracle takeOwnership=Yes<\/pre>\n<p><a id=\"step_02\"><\/a><br \/>\n<strong>Step 2:<\/strong> Discover file server<\/p>\n<p>In this example I going to store the ServerPool FSs to NFS from the ZFS Storage appliance. But it could be whatever NFS technologies or directly can be stored in ISCSI\/FC LUNs.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list FileServerPlugin\nCommand: list FileServerPlugin\nStatus: Success\nTime: 2017-10-19 14:51:31,311 CEST\nData:\nid:oracle.ocfs2.OCFS2.OCFS2Plugin (0.1.0-47.5)  name:Oracle OCFS2 File system\nid:oracle.generic.NFSPlugin.GenericNFSPlugin (1.1.0)  name:Oracle Generic Network File System\n\nOVM&gt; create FileServer plugin=\"Oracle Generic Network File System\" accessHost=192.168.238.10 adminServers=ovs001,ovs002 name=zfsstorage\nCommand: create FileServer plugin=\"Oracle Generic Network File System\" accessHost=192.168.238.10 adminServers=ovs001,ovs002 name=zfsstorage\nStatus: Success\nTime: 2017-10-19 14:58:46,411 CEST\nJobId: 1508417926209\nData:\nid:0004fb00000900004801ecf9996f1d43  name:zfsstorage\n\nOVM&gt; refreshAll\nCommand: refreshAll\nStatus: Success\nTime: 2017-10-19 16:26:58,705 CEST\nJobId: 1508422976145\n\nOVM&gt; list FileSystem\nCommand: list FileSystem\nStatus: Success\nTime: 2017-10-19 17:41:35,737 CEST\nData:\nid:75734f6d-704d-48ee-9853-f6cc09b5af65  name:nfs on 192.168.238.10:\/export\/RepoOracle\nid:3f81dcad-e1ce-41b9-b0f3-3222b3816b17  name:nfs on 192.168.238.10:\/export\/ServerPoolProd01\n\nOVM&gt; refresh FileSystem id=75734f6d-704d-48ee-9853-f6cc09b5af65\nCommand: refresh FileSystem id=75734f6d-704d-48ee-9853-f6cc09b5af65\nStatus: Success\nTime: 2017-10-19 17:42:28,516 CEST\nJobId: 1508427714903\n\nOVM&gt; refresh FileSystem id=3f81dcad-e1ce-41b9-b0f3-3222b3816b17\nCommand: refresh FileSystem id=3f81dcad-e1ce-41b9-b0f3-3222b3816b17\nStatus: Success\nTime: 2017-10-19 17:43:02,144 CEST\nJobId: 1508427760257<\/pre>\n<p><a id=\"step_03\"><\/a><br \/>\n<strong>Step 3:<\/strong> Discover NAS Storage<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list StorageArrayPlugin\nCommand: list StorageArrayPlugin\nStatus: Success\nTime: 2017-10-19 15:28:23,932 CEST\nData:\nid:oracle.s7k.SCSIPlugin.SCSIPlugin (2.1.2-3)  name:zfs_storage_iscsi_fc\nid:oracle.generic.SCSIPlugin.GenericPlugin (1.1.0)  name:Oracle Generic SCSI Plugin\n\nOVM&gt; create StorageArray plugin=zfs_storage_iscsi_fc name=zfsstorage storageType=ISCSI accessHost=192.168.238.10 accessPort=3260 adminHost=192.168.238.10 adminUserName=ovmuser adminPassword=oracle pluginPrivateData=\"OVM-iSCSI,OVM-iSCSI-Target\"\nCommand: create StorageArray plugin=zfs_storage_iscsi_fc name=zfsstorage storageType=ISCSI accessHost=192.168.238.10 accessPort=3260 adminHost=192.168.238.10 adminUserName=ovmuser adminPassword=***** pluginPrivateData=\"OVM-iSCSI,OVM-iSCSI-Target\"\nStatus: Success\nTime: 2017-10-19 15:48:00,761 CEST\nJobId: 1508420880565\nData:\nid:0004fb0000090000c105d1003f051fbd  name:zfsstorage\n\nOVM&gt; addAdminServer StorageArray name=zfsstorage server=ovs001\nCommand: addAdminServer StorageArray name=zfsstorage server=ovs001\nStatus: Success\nTime: 2017-10-19 16:11:32,448 CEST\nJobId: 1508422292175\n\nOVM&gt; addAdminServer StorageArray name=zfsstorage server=ovs002\nCommand: addAdminServer StorageArray name=zfsstorage server=ovs002\nStatus: Success\nTime: 2017-10-19 16:11:35,424 CEST\nJobId: 1508422295266\n\nOVM&gt; validate StorageArray name=zfsstorage\nCommand: validate StorageArray name=zfsstorage\nStatus: Success\nTime: 2017-10-19 16:10:04,937 CEST\nJobId: 1508422128777\n\nOVM&gt; refreshAll\nCommand: refreshAll\nStatus: Success\nTime: 2017-10-19 16:26:58,705 CEST\nJobId: 1508422976145<\/pre>\n<p><a id=\"step_04\"><\/a><br \/>\n<strong>Step 4:<\/strong> Creation of a server pool<\/p>\n<p>OVM need to put its physical servers in a logical space called server pool. A server pool will use a least 2 storage spaces:<\/p>\n<ul>\n<li>a cluster storage configuration and disk Heartbeat (must be at least of 10GB regarding OVM 3.4&#8217;s recommendations) and it is better to separate the network access for this storage space in order to avoid unwanted cluster eviction.<\/li>\n<li>a storage space for the serverpool in which we can store VMs configuration file, Template, ISOs and so on.<\/li>\n<\/ul>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list FileSystem\nCommand: list FileSystem\nStatus: Success\nTime: 2017-10-19 17:41:35,737 CEST\nData:\nid:75734f6d-704d-48ee-9853-f6cc09b5af65  name:nfs on 192.168.238.10:\/export\/RepoOracle\nid:3f81dcad-e1ce-41b9-b0f3-3222b3816b17  name:nfs on 192.168.238.10:\/export\/ServerPoolProd01\n\nOVM&gt; create ServerPool clusterEnable=yes filesystem=3f81dcad-e1ce-41b9-b0f3-3222b3816b17 name=prod01 description='Server pool for production 001' startPolicy=CURRENT_SERVER\nCommand: create ServerPool clusterEnable=yes filesystem=3f81dcad-e1ce-41b9-b0f3-3222b3816b17 name=prod01 description='Server pool for production 001' startPolicy=CURRENT_SERVER\nStatus: Success\nTime: 2017-10-19 17:15:11,431 CEST\nData:\nid:0004fb0000020000c6b2c32fc58646e7  name:prod01<\/pre>\n<p><a id=\"step_05\"><\/a><br \/>\n<strong>Step 5:<\/strong> Add servers to the server pool<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list server\nCommand: list server\nStatus: Success\nTime: 2017-10-19 17:15:28,111 CEST\nData:\nid:65:72:21:77:7b:0d:47:47:bc:43:e5:1f:64:3d:56:d9  name:ovs002\nid:bb:06:3c:3e:a4:76:4b:e2:9c:bc:65:69:4e:35:28:b4  name:ovs001\n\nOVM&gt; add Server name=ovs001 to ServerPool name=prod01\nCommand: add Server name=ovs001 to ServerPool name=prod01\nStatus: Success\nTime: 2017-10-19 17:17:55,131 CEST\nJobId: 1508426260895\n\nOVM&gt; add Server name=ovs002 to ServerPool name=prod01\nCommand: add Server name=ovs002 to ServerPool name=prod01\nStatus: Success\nTime: 2017-10-19 17:18:21,439 CEST\nJobId: 1508426277115<\/pre>\n<p><a id=\"step_06\"><\/a><br \/>\n<strong>Step 6:<\/strong> Creation of a repository to store VMs&#8217;s configuration files and to import the Oracle Template<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list filesystem\nCommand: list filesystem\nStatus: Success\nTime: 2017-10-19 17:44:23,811 CEST\nData:\nid:0004fb00000500009cbc79dde9b6649e  name:Server Pool File System\nid:75734f6d-704d-48ee-9853-f6cc09b5af65  name:nfs on 192.168.238.10:\/export\/RepoOracle\nid:3f81dcad-e1ce-41b9-b0f3-3222b3816b17  name:nfs on 192.168.238.10:\/export\/ServerPoolProd01\n\nOVM&gt; create Repository name=RepoOracle on FileSystem name=\"nfs on 192.168.238.10:\/\/export\/\/RepoOracle\"\nCommand: create Repository name=RepoOracle on FileSystem name=\"nfs on 192.168.238.10:\/\/export\/\/RepoOracle\"\nStatus: Success\nTime: 2017-10-19 17:45:22,346 CEST\nJobId: 1508427888238\nData:\nid:0004fb0000030000f1c8182390a36c8c  name:RepoOracle\n\nOVM&gt; add ServerPool name=prod01 to Repository name=RepoOracle\nCommand: add ServerPool name=prod01 to Repository name=RepoOracle\nStatus: Success\nTime: 2017-10-19 17:53:08,020 CEST\nJobId: 1508428361049\n\nOVM&gt; refresh Repository name=RepoOracle\nCommand: refresh Repository name=RepoOracle\nStatus: Success\nTime: 2017-10-19 17:53:40,922 CEST\nJobId: 1508428394212\n\nOVM&gt; importTemplate Repository name=RepoOracle url=\"ftp:\/\/\/\/192.168.56.200\/\/pub\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM-1of2.tar.gz,ftp:\/\/\/\/192.168.56.200\/\/pub\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM-2of2.tar.gz\"\nCommand: importTemplate Repository name=RepoOracle url=\"ftp:\/\/\/\/192.168.56.200\/\/pub\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM-1of2.tar.gz,ftp:\/\/\/\/192.168.56.200\/\/pub\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM\/\/OVM_OL7U4_X86_64_12201DBRAC_PVHVM-2of2.tar.gz\"\nStatus: Success\nTime: 2017-11-02 12:05:29,341 CET\nJobId: 1509619956729\nData:\nid:0004fb00001400005f68a4067eda1e6b  name:OVM_OL7U4_X86_64_12201DBRAC_PVHVM-1of2.tar.gz<\/pre>\n<p><a id=\"step_07\"><\/a><br \/>\n<strong>Step 7:<\/strong> Create VMs called rac001 and rac002 for my 2 nodes RAC<\/p>\n<p>Here we create VMs by cloning the template OVM_OL7U4_X86_64_12201DBRAC_PVHVM from Oracle.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list vm\nCommand: list vm\nStatus: Success\nTime: 2017-11-02 12:07:06,077 CET\nData:\nid:0004fb00001400005f68a4067eda1e6b  name:OVM_OL7U4_X86_64_12201DBRAC_PVHVM-1of2.tar.gz\n\nOVM&gt; edit vm id=0004fb00001400005f68a4067eda1e6b name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM\nCommand: edit vm id=0004fb00001400005f68a4067eda1e6b name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM\nStatus: Success\nTime: 2017-11-02 12:07:30,392 CET\nJobId: 1509620850142\n\nOVM&gt; list vm\nCommand: list vm\nStatus: Success\nTime: 2017-11-02 12:07:36,282 CET\nData:\nid:0004fb00001400005f68a4067eda1e6b  name:OVM_OL7U4_X86_64_12201DBRAC_PVHVM\n\nOVM&gt; clone Vm name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM destType=Vm destName=rac001 serverPool=prod01\nCommand: clone Vm name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM destType=Vm destName=rac001 serverPool=prod01\nStatus: Success\nTime: 2017-11-02 12:31:31,798 CET\nJobId: 1509622291342\nData:\nid:0004fb0000060000d4819629ebc0687f  name:rac001\n\nOVM&gt; clone Vm name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM destType=Vm destName=rac002 serverPool=prod01\nCommand: clone Vm name=OVM_OL7U4_X86_64_12201DBRAC_PVHVM destType=Vm destName=rac002 serverPool=prod01\nStatus: Success\nTime: 2017-11-02 13:57:34,125 CET\nJobId: 1509627453634\nData:\nid:0004fb0000060000482c8e4790b7081a  name:rac002\n\nOVM&gt; list vm\nCommand: list vm\nStatus: Success\nTime: 2017-11-02 15:23:54,077 CET\nData:\nid:0004fb00001400005f68a4067eda1e6b  name:OVM_OL7U4_X86_64_12201DBRAC_PVHVM\nid:0004fb0000060000d4819629ebc0687f  name:rac001\nid:0004fb0000060000482c8e4790b7081a  name:rac002\n\nOVM&gt; edit vm name=rac001 memory=2048 memoryLimit=2048\nCommand: edit vm name=rac001 memory=2048 memoryLimit=2048\nStatus: Success\nTime: 2017-11-02 17:14:45,542 CET\nJobId: 1509639285374\n\nOVM&gt; edit vm name=rac002 memory=2048 memoryLimit=2048\nCommand: edit vm name=rac002 memory=2048 memoryLimit=2048\nStatus: Success\nTime: 2017-11-02 17:14:59,458 CET\nJobId: 1509639299301<\/pre>\n<p><a id=\"step_08\"><\/a><br \/>\n<strong>Step 8:<\/strong> Network definition for\u00a0RAC interconnect and application network<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">create Network roles=VIRTUAL_MACHINE name=Application-Network\ncreate Network roles=VIRTUAL_MACHINE name=Interco-Network-01\ncreate Network roles=VIRTUAL_MACHINE name=Interco-Network-02\n\nOVM&gt; list network\nCommand: list network\nStatus: Success\nTime: 2017-10-17 00:31:53,673 CEST\nData:\nid:108572a7ca  name:Application-Network\nid:10922ff6d7  name:Interco-Network-01\nid:106765828d  name:Interco-Network-02<\/pre>\n<p>&nbsp;<\/p>\n<p>Next, we attach physical OVS&#8217;s NICs to corresponding networks<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list port\nCommand: list port\nStatus: Success\nTime: 2017-11-02 16:03:40,026 CET\nData:\nid:0004fb00002000007667fde85d2a2944  name:eth0 on ovs002\nid:0004fb00002000001fa791c597d71947  name:eth1 on ovs002\nid:0004fb00002000003842bd1f3acb476b  name:eth2 on ovs002\nid:0004fb000020000031652acb25248275  name:eth3 on ovs002\nid:0004fb00002000006fb524dac1f2319c  name:eth4 on ovs001\nid:0004fb0000200000748a37db41f80fb2  name:eth4 on ovs002\nid:0004fb00002000000178e5cefb3c0161  name:eth3 on ovs001\nid:0004fb000020000020373da7c0cdf4cf  name:eth2 on ovs001\nid:0004fb0000200000b0e747714aa822b7  name:eth1 on ovs001\nid:0004fb00002000002787de2e68f61ecd  name:eth0 on ovs001\n\nadd Port id=0004fb0000200000b0e747714aa822b7 to Network name=Application-Network\nadd Port id=0004fb00002000000178e5cefb3c0161 to Network name=Interco-Network-01\nadd Port id=0004fb00002000006fb524dac1f2319c to Network name=Interco-Network-02\n\nadd Port id=0004fb00002000001fa791c597d71947 to Network name=Application-Network\nadd Port id=0004fb000020000031652acb25248275 to Network name=Interco-Network-01\nadd Port id=0004fb0000200000748a37db41f80fb2 to Network name=Interco-Network-02<\/pre>\n<p>&nbsp;<\/p>\n<p>Then create Virtual NIC for Virtual Machines (the order matter as first created will fill first slot of the VM)<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list vnic\nCommand: list vnic\nStatus: Success\nTime: 2017-11-02 15:25:54,571 CET\nData:\nid:0004fb00000700001fe86897bfb0ecd4  name:Template Vnic\nid:0004fb00000700005351eb55314ab34e  name:Template Vnic\n\ncreate Vnic name=rac001_vnic_admin network=Admin-Network on Vm name=rac001\ncreate Vnic name=rac001_vnic_application network=Application-Network on Vm name=rac001\ncreate Vnic name=rac001_vnic_interconnect network=Interco-Network-01 on Vm name=rac001\ncreate Vnic name=rac001_vnic_interconnect network=Interco-Network-02 on Vm name=rac001\n\ncreate Vnic name=rac002_vnic_admin network=Admin-Network on Vm name=rac002\ncreate Vnic name=rac002_vnic_application network=Application-Network on Vm name=rac002\ncreate Vnic name=rac002_vnic_interconnect network=Interco-Network-01 on Vm name=rac002\ncreate Vnic name=rac002_vnic_interconnect network=Interco-Network-02 on Vm name=rac002\n\nOVM&gt; list vnic\nCommand: list vnic\nStatus: Success\nTime: 2017-11-02 15:27:34,642 CET\nData:\nid:0004fb00000700005631bb2fbbeed53c  name:rac002_vnic_interconnect\nid:0004fb00000700005e93ec7e8cf529b6  name:rac001_vnic_interconnect\nid:0004fb0000070000c091c9091b464846  name:rac002_vnic_admin\nid:0004fb00000700001fe86897bfb0ecd4  name:Template Vnic\nid:0004fb00000700009430b0a26566d6e3  name:rac002_vnic_application\nid:0004fb0000070000c4113fb1d9375791  name:rac002_vnic_interconnect\nid:0004fb00000700005351eb55314ab34e  name:Template Vnic\nid:0004fb0000070000e1abd7e572bffc3a  name:rac001_vnic_admin\nid:0004fb000007000079bb1fbf1d1942c9  name:rac001_vnic_application\nid:0004fb000007000085d8a41dc8fd768c  name:rac001_vnic_interconnect<\/pre>\n<p><a id=\"step_09\"><\/a><br \/>\n<strong>Step 9:<\/strong> Shared disks attachment to VMs for\u00a0RAC ASM<\/p>\n<p>Thanks to the Storage plugin available for the ZFS appliance we can directly create LUNs from the OVM Cli. You may find plugin for your Storage constructor in the Oracle Web Site https:\/\/www.oracle.com\/virtualization\/storage-connect-partner-program.html.<br \/>\nThe storage plugin need to be installed on each OVS Servers and OVS servers need to be rediscovered after changes.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">create PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgclu001 name=clu001dgclu001 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgclu002 name=clu001dgclu002 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgclu003 name=clu001dgclu003 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgclu004 name=clu001dgclu004 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgclu005 name=clu001dgclu005 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgdata001 name=clu001dgdata001 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgdata002 name=clu001dgdata002 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgfra001 name=clu001dgfra001 on VolumeGroup  name=data\/local\/OracleTech\ncreate PhysicalDisk size=5 shareable=yes thinProvision=yes userFriendlyName=clu001dgfra002 name=clu001dgfra002 on VolumeGroup  name=data\/local\/OracleTech\n\nOVM&gt; list PhysicalDisk\nCommand: list PhysicalDisk\nStatus: Success\nTime: 2017-11-02 11:44:41,624 CET\nData:\nid:0004fb0000180000ae02df42a4c8e582  name:clu001dgclu004\nid:0004fb0000180000d91546f7d1a09cfb  name:clu001dgclu005\nid:0004fb0000180000ab0030fb540a55b9  name:clu001dgclu003\nid:0004fb0000180000d20bb1d7d50d6875  name:clu001dgfra001\nid:0004fb00001800009e39a0b8b1edcf90  name:clu001dgfra002\nid:0004fb00001800003742306aa30bfdd4  name:clu001dgdata001\nid:0004fb00001800006131006a7a9fd266  name:clu001dgdata002\nid:0004fb0000180000a5177543a1ef0464  name:clu001dgclu001\nid:0004fb000018000035bd38c6f5245f66  name:clu001dgclu002\n\ncreate vmdiskmapping slot=10 physicalDisk=clu001dgclu001 name=asm_disk_cluster_rac001_clu001dgclu001 on Vm name=rac001\ncreate vmdiskmapping slot=11 physicalDisk=clu001dgclu002 name=asm_disk_cluster_rac001_clu001dgclu002 on Vm name=rac001\ncreate vmdiskmapping slot=12 physicalDisk=clu001dgclu003 name=asm_disk_cluster_rac001_clu001dgclu003 on Vm name=rac001\ncreate vmdiskmapping slot=13 physicalDisk=clu001dgclu004 name=asm_disk_cluster_rac001_clu001dgclu004 on Vm name=rac001\ncreate vmdiskmapping slot=14 physicalDisk=clu001dgclu005 name=asm_disk_cluster_rac001_clu001dgclu005 on Vm name=rac001\ncreate vmdiskmapping slot=15 physicalDisk=clu001dgdata001 name=asm_disk_cluster_rac001_clu001dgdata001 on Vm name=rac001\ncreate vmdiskmapping slot=16 physicalDisk=clu001dgdata002 name=asm_disk_cluster_rac001_clu001dgdata002 on Vm name=rac001\ncreate vmdiskmapping slot=17 physicalDisk=clu001dgfra001 name=asm_disk_cluster_rac001_clu001dgfra001 on Vm name=rac001\ncreate vmdiskmapping slot=18 physicalDisk=clu001dgfra002 name=asm_disk_cluster_rac001_clu001dgfra002 on Vm name=rac001\n\ncreate vmdiskmapping slot=10 physicalDisk=clu001dgclu001 name=asm_disk_cluster_rac002_clu001dgclu001 on Vm name=rac002\ncreate vmdiskmapping slot=11 physicalDisk=clu001dgclu002 name=asm_disk_cluster_rac002_clu001dgclu002 on Vm name=rac002\ncreate vmdiskmapping slot=12 physicalDisk=clu001dgclu003 name=asm_disk_cluster_rac002_clu001dgclu003 on Vm name=rac002\ncreate vmdiskmapping slot=13 physicalDisk=clu001dgclu004 name=asm_disk_cluster_rac002_clu001dgclu004 on Vm name=rac002\ncreate vmdiskmapping slot=14 physicalDisk=clu001dgclu005 name=asm_disk_cluster_rac002_clu001dgclu005 on Vm name=rac002\ncreate vmdiskmapping slot=15 physicalDisk=clu001dgdata001 name=asm_disk_cluster_rac002_clu001dgdata on Vm name=rac002\ncreate vmdiskmapping slot=16 physicalDisk=clu001dgdata002 name=asm_disk_cluster_rac002_clu001dgdata on Vm name=rac002\ncreate vmdiskmapping slot=17 physicalDisk=clu001dgfra001 name=asm_disk_cluster_rac002_clu001dgfra001 on Vm name=rac002\ncreate vmdiskmapping slot=18 physicalDisk=clu001dgfra002 name=asm_disk_cluster_rac002_clu001dgfra002 on Vm name=rac002\n\n \n\n#Output of an attachment:\nOVM&gt; create vmdiskmapping slot=51 physicalDisk=clu001dgfra002 name=asm_disk_cluster_rac002_clu001dgfra002 on Vm name=rac002\nCommand: create vmdiskmapping slot=51 physicalDisk=clu001dgfra002 name=asm_disk_cluster_rac002_clu001dgfra002 on Vm name=rac002\nStatus: Success\nTime: 2017-11-02 15:49:44,573 CET\nJobId: 1509634184144\nData:\nid:0004fb0000130000d1a3ecffefcc0b5b  name:asm_disk_cluster_rac002_clu001dgfra002<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; list vmdiskmapping\nCommand: list vmdiskmapping\nStatus: Success\nTime: 2017-11-02 15:50:05,117 CET\nData:\nid:0004fb0000130000a2e52668e38d24f0  name:Mapping for disk Id (0004fb00001200008e5043cea31e4a1c.img)\nid:0004fb00001300000b0202b6af4254b1  name:asm_disk_cluster_rac002_clu001dgclu003\nid:0004fb0000130000f573415ba8af814d  name:Mapping for disk Id (0004fb0000120000073fd0cff75c5f4d.img)\nid:0004fb0000130000217c1b6586d88d98  name:asm_disk_cluster_rac002_clu001dgclu002\nid:0004fb00001300007c8f1b4fd9e845c4  name:asm_disk_cluster_rac002_clu001dgclu001\nid:0004fb00001300009698cf153f616454  name:asm_disk_cluster_rac001_clu001dgfra002\nid:0004fb0000130000c9caf8763df6bfe0  name:asm_disk_cluster_rac001_clu001dgfra001\nid:0004fb00001300009771ff7e2a1bf965  name:asm_disk_cluster_rac001_clu001dgdata002\nid:0004fb00001300003aed42abb7085053  name:asm_disk_cluster_rac001_clu001dgdata001\nid:0004fb0000130000ac45b70bac2cedf7  name:asm_disk_cluster_rac001_clu001dgclu005\nid:0004fb000013000007069008e4b91b9d  name:asm_disk_cluster_rac001_clu001dgclu004\nid:0004fb0000130000a8182ada5a07d7cd  name:asm_disk_cluster_rac001_clu001dgclu003\nid:0004fb00001300009edf25758590684b  name:asm_disk_cluster_rac001_clu001dgclu002\nid:0004fb0000130000a93c8a73900cbf80  name:asm_disk_cluster_rac002_clu001dgfra001\nid:0004fb0000130000c8c35da3ad0148c4  name:asm_disk_cluster_rac001_clu001dgclu001\nid:0004fb0000130000d1a3ecffefcc0b5b  name:asm_disk_cluster_rac002_clu001dgfra002\nid:0004fb0000130000ff84c64175d7e6c1  name:asm_disk_cluster_rac002_clu001dgdata\nid:0004fb00001300009c08b1803928536d  name:Mapping for disk Id (dd3c390b29af49809caba202f234a443.img)\nid:0004fb0000130000e85ace19b45c0ad6  name:Mapping for disk Id (0004fb00001200002aa671facc8a1307.img)\nid:0004fb0000130000e595c3dc5788b87a  name:Mapping for disk Id (0004fb000012000087341e27f9faaa17.img)\nid:0004fb0000130000c66fe2d0d66b7276  name:asm_disk_cluster_rac002_clu001dgdata\nid:0004fb00001300009c85bca66c400366  name:Mapping for disk Id (46da481163424b739feeb08b4d22c1b4.img)\nid:0004fb0000130000768a2af09207e659  name:asm_disk_cluster_rac002_clu001dgclu004\nid:0004fb000013000092836d3ee569e6ac  name:asm_disk_cluster_rac002_clu001dgclu005\n\nOVM&gt; add StorageInitiator name=iqn.1988-12.com.oracle:1847e1b91b5b to AccessGroup name=cluster001\nCommand: add StorageInitiator name=iqn.1988-12.com.oracle:1847e1b91b5b to AccessGroup name=cluster001\nStatus: Success\nTime: 2017-11-02 16:59:32,116 CET\nJobId: 1509638311277\n\nOVM&gt; add StorageInitiator name=iqn.1988-12.com.oracle:a5c84f2c8798 to AccessGroup name=cluster001\nCommand: add StorageInitiator name=iqn.1988-12.com.oracle:a5c84f2c8798 to AccessGroup name=cluster001\nStatus: Success\nTime: 2017-11-02 16:57:31,703 CET\nJobId: 1509638191228\n\nadd PhysicalDisk name=clu001dgclu001 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgclu002 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgclu003 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgclu004 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgclu005 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgdata001 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgdata002 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgfra001 to AccessGroup name=cluster001\nadd PhysicalDisk name=clu001dgfra002 to AccessGroup name=cluster001\n\n#Output of an Access addition:\nOVM&gt; add PhysicalDisk name=clu001dgclu001 to AccessGroup name=cluster001\nCommand: add PhysicalDisk name=clu001dgclu001 to AccessGroup name=cluster001\nStatus: Success\nTime: 2017-11-02 17:10:13,636 CET\nJobId: 1509639013463<\/pre>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">OVM&gt; refreshStorageLayer Server name=ovs001\nCommand: refreshStorageLayer Server name=ovs001\nStatus: Success\nTime: 2017-11-02 16:42:26,230 CET\nJobId: 1509637330270\n\nOVM&gt; refreshStorageLayer Server name=ovs002\nCommand: refreshStorageLayer Server name=ovs002\nStatus: Success\nTime: 2017-11-02 16:42:51,296 CET\nJobId: 1509637355423<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Final state:<\/strong> 2 VMs hosted on 2 different Servers with OS, Network and Storage requirements to run\u00a0RAC 12.2.<\/p>\n<p>This concluded this part and demonstrates how easy it can be to automate those commands and deploy many different architectures.<br \/>\n<a title=\"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture \u2013 (part 02)\" href=\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-02\/\">The next part will describe how to deploy a\u00a0RAC 12.2 on top of this infrastructure with the Oracle DeployCluster Tool in few commands. <\/a><\/p>\n<p>I hope it may help and please do not hesitate to contact us if you have any questions or require further information.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After having worked with OVM on various architectures I can say that it is a good technology to easily build virtualized environments for production applications. Because it is based on XEN and has simple ways to deal with existing storage (FC, ISCSI, NFS, &#8230;) and networking solution (bond, lacp, &#8230;) it is a robust and [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198,199,42,59],"tags":[],"type_dbi":[],"class_list":["post-10616","post","type-post","status-publish","format-standard","hentry","category-database-management","category-hardware-storage","category-operating-systems","category-oracle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01) - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01)\" \/>\n<meta property=\"og:description\" content=\"After having worked with OVM on various architectures I can say that it is a good technology to easily build virtualized environments for production applications. Because it is based on XEN and has simple ways to deal with existing storage (FC, ISCSI, NFS, &#8230;) and networking solution (bond, lacp, &#8230;) it is a robust and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-08T07:30:02+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture &#8211; (part 01)\",\"datePublished\":\"2017-11-08T07:30:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\"},\"wordCount\":783,\"commentCount\":0,\"articleSection\":[\"Database management\",\"Hardware &amp; Storage\",\"Operating systems\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\",\"name\":\"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01) - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2017-11-08T07:30:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture &#8211; (part 01)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01) - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/","og_locale":"en_US","og_type":"article","og_title":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01)","og_description":"After having worked with OVM on various architectures I can say that it is a good technology to easily build virtualized environments for production applications. Because it is based on XEN and has simple ways to deal with existing storage (FC, ISCSI, NFS, &#8230;) and networking solution (bond, lacp, &#8230;) it is a robust and [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/","og_site_name":"dbi Blog","article_published_time":"2017-11-08T07:30:02+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture &#8211; (part 01)","datePublished":"2017-11-08T07:30:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/"},"wordCount":783,"commentCount":0,"articleSection":["Database management","Hardware &amp; Storage","Operating systems","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/","url":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/","name":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture - (part 01) - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2017-11-08T07:30:02+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/automate-ovm-deployment-for-a-production-ready-oracle-rac-12-2-architecture-part-01\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Automate OVM deployment for a production ready Oracle RAC 12.2 architecture &#8211; (part 01)"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=10616"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10616\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=10616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=10616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=10616"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=10616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}