diff --git a/cinder/volume/drivers/kaminario/kaminario_common.py b/cinder/volume/drivers/kaminario/kaminario_common.py
index c238adb5af9..b93c54e1335 100644
--- a/cinder/volume/drivers/kaminario/kaminario_common.py
+++ b/cinder/volume/drivers/kaminario/kaminario_common.py
@@ -486,7 +486,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
 
         LOG.debug("Searching and deleting snapshots for volume groups:"
                   "%(vg1)s, %(vg2)s in K2.", {'vg1': vg_name, 'vg2': rvg_name})
-        vg = self.target.search('volume_groups', name=vg_name).hits
+        vg = self.client.search('volume_groups', name=vg_name).hits
         rvg = self.target.search('volume_groups', name=rvg_name).hits
         snaps = self.client.search('snapshots', volume_group=vg).hits
         for s in snaps:
@@ -637,9 +637,9 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
         return "cview-{0}".format(vid)
 
     @kaminario_logger
-    def get_rep_name(self, sname):
-        """Return the replication session name."""
-        return "r{0}".format(sname)
+    def get_rep_name(self, name):
+        """Return the corresponding replication names."""
+        return "r{0}".format(name)
 
     @kaminario_logger
     def _delete_host_by_name(self, name):
@@ -758,7 +758,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
                 'kaminario:thin_prov_type')
             if specs_val == 'nodedup':
                 return False
-            elif CONF.kaminario_nodedup_substring in vol_type.name:
+            elif CONF.kaminario_nodedup_substring in vol_type.get('name'):
                 LOG.info(_LI("'kaminario_nodedup_substring' option is "
                              "deprecated in favour of 'kaminario:thin_prov_"
                              "type' in extra-specs and will be removed in "
@@ -779,12 +779,12 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
         return replica
 
     def _get_replica_status(self, vg_name):
-        status = False
-        rvg = self.client.search("replication/peer_volume_groups",
-                                 name=vg_name)
-        if rvg.total != 0:
-            status = True
-        return status
+        vg = self.client.search("volume_groups", name=vg_name).hits[0]
+        if self.client.search("replication/sessions",
+                              local_volume_group=vg).total != 0:
+            return True
+        else:
+            return False
 
     def manage_existing(self, volume, existing_ref):
         vol_name = existing_ref['source-name']
@@ -885,7 +885,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
         LOG.debug("Searching volume with name: %(name)s",
                   {'name': vol_name})
         vol = self.client.search("volumes", name=vol_name).hits[0]
-        self._create_volume_replica(volume, vg, vol, 500)
+        self._create_volume_replica(volume, vg, vol, self.replica.rpo)
 
     def _delete_replication(self, volume):
         vg_name = self.get_volume_group_name(volume.id)
diff --git a/releasenotes/notes/kaminario-cinder-driver-bug-1612602-8209c921e59d9dda.yaml b/releasenotes/notes/kaminario-cinder-driver-bug-1612602-8209c921e59d9dda.yaml
new file mode 100644
index 00000000000..953769cf30b
--- /dev/null
+++ b/releasenotes/notes/kaminario-cinder-driver-bug-1612602-8209c921e59d9dda.yaml
@@ -0,0 +1,7 @@
+---
+fixes:
+  - Fixed _delete_volume_replica and _get_replica_status in
+    Kaminario K2 iSCSI and FC Cinder drivers with different source
+    and target K2 arrays while testing replication.
+    Removed hard-coding of RPO and fixed volume_type.name issue.
+