Skip to content

cephfs-mirror: integrate blockdiff with mirror daemon#62250

Merged
vshankar merged 6 commits intoceph:mainfrom
vshankar:wip-integrate-blockdiff-with-mirror-daemon
May 12, 2025
Merged

cephfs-mirror: integrate blockdiff with mirror daemon#62250
vshankar merged 6 commits intoceph:mainfrom
vshankar:wip-integrate-blockdiff-with-mirror-daemon

Conversation

@vshankar
Copy link
Contributor

@vshankar vshankar commented Mar 12, 2025

Depends on #61937

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

@vshankar vshankar added the cephfs Ceph File System label Mar 12, 2025
@vshankar vshankar requested a review from a team March 12, 2025 14:06
@github-actions github-actions bot added the tests label Mar 12, 2025
@vshankar vshankar mentioned this pull request Mar 19, 2025
14 tasks
@vshankar vshankar force-pushed the wip-integrate-blockdiff-with-mirror-daemon branch from 4a06189 to 565a218 Compare March 21, 2025 10:37
vshankar added a commit to vshankar/ceph that referenced this pull request Mar 21, 2025
* refs/pull/62250/head:
	separate stat
	add debug
	cephfs-mirror: integrate blockdiff API for regular file transfers
	mds: dout snapdiff snapid's before validation check
	cephfs-mirror: current sync mschanism uses sync mechanism subclass'ing
	cephfs-mirror: switch to remote dir_root when local prev snapshot is unavailable
	qa: add test for syncing already existing snapshots
	cephfs_mirror: avoid latest changes on the source fs to enable mirroring
@vshankar vshankar force-pushed the wip-integrate-blockdiff-with-mirror-daemon branch 4 times, most recently from 7eac446 to 8d066af Compare March 25, 2025 04:53
@vshankar
Copy link
Contributor Author

jenkins test make check

@vshankar
Copy link
Contributor Author

jenkins test make check arm64

@vshankar
Copy link
Contributor Author

Running one final batch of qa tests -- this mostly looks good. I will squash the commits once done.

@vshankar
Copy link
Contributor Author

@joscollin Test run here: https://pulpito.ceph.com/vshankar-2025-03-26_05:53:19-fs:mirror-wip-vshankar-testing-20250325.045436-debug-testing-default-gibba/

The test failure is due to this change

diff --git a/qa/tasks/cephfs/test_mirroring.py b/qa/tasks/cephfs/test_mirroring.py
index 4d17a9a902f..a14f775aa0f 100644
--- a/qa/tasks/cephfs/test_mirroring.py
+++ b/qa/tasks/cephfs/test_mirroring.py
@@ -4,6 +4,7 @@ import errno
 import logging
 import random
 import time
+import unittest

 from io import StringIO
 from collections import deque
@@ -572,6 +573,7 @@ class TestMirroring(CephFSTestCase):

         self.disable_mirroring(self.primary_fs_name, self.primary_fs_id)

+    @unittest.skip("Temporary skip of this test")
     def test_cephfs_mirror_stats(self):
         log.debug('reconfigure client auth caps')
         self.get_ceph_cmd_result(

which I added since I was seeing a weird failure with test_cephfs_mirror_stats (OSDs crashing due to ENOSPC). I think that requires a qa fix, but apart from that, all other tests are running fine.

@joscollin
Copy link
Member

@joscollin Test run here: https://pulpito.ceph.com/vshankar-2025-03-26_05:53:19-fs:mirror-wip-vshankar-testing-20250325.045436-debug-testing-default-gibba/

The test failure is due to this change

diff --git a/qa/tasks/cephfs/test_mirroring.py b/qa/tasks/cephfs/test_mirroring.py
index 4d17a9a902f..a14f775aa0f 100644
--- a/qa/tasks/cephfs/test_mirroring.py
+++ b/qa/tasks/cephfs/test_mirroring.py
@@ -4,6 +4,7 @@ import errno
 import logging
 import random
 import time
+import unittest

 from io import StringIO
 from collections import deque
@@ -572,6 +573,7 @@ class TestMirroring(CephFSTestCase):

         self.disable_mirroring(self.primary_fs_name, self.primary_fs_id)

+    @unittest.skip("Temporary skip of this test")
     def test_cephfs_mirror_stats(self):
         log.debug('reconfigure client auth caps')
         self.get_ceph_cmd_result(

which I added since I was seeing a weird failure with test_cephfs_mirror_stats (OSDs crashing due to ENOSPC). I think that requires a qa fix, but apart from that, all other tests are running fine.

If it was this one https://tracker.ceph.com/issues/69232, you need to rebase. I hope it's different one.

@vshankar
Copy link
Contributor Author

@joscollin Test run here: https://pulpito.ceph.com/vshankar-2025-03-26_05:53:19-fs:mirror-wip-vshankar-testing-20250325.045436-debug-testing-default-gibba/
The test failure is due to this change

diff --git a/qa/tasks/cephfs/test_mirroring.py b/qa/tasks/cephfs/test_mirroring.py
index 4d17a9a902f..a14f775aa0f 100644
--- a/qa/tasks/cephfs/test_mirroring.py
+++ b/qa/tasks/cephfs/test_mirroring.py
@@ -4,6 +4,7 @@ import errno
 import logging
 import random
 import time
+import unittest

 from io import StringIO
 from collections import deque
@@ -572,6 +573,7 @@ class TestMirroring(CephFSTestCase):

         self.disable_mirroring(self.primary_fs_name, self.primary_fs_id)

+    @unittest.skip("Temporary skip of this test")
     def test_cephfs_mirror_stats(self):
         log.debug('reconfigure client auth caps')
         self.get_ceph_cmd_result(

which I added since I was seeing a weird failure with test_cephfs_mirror_stats (OSDs crashing due to ENOSPC). I think that requires a qa fix, but apart from that, all other tests are running fine.

If it was this one https://tracker.ceph.com/issues/69232, you need to rebase. I hope it's different one.

Not really. The test triggers as OSD assert due to ENOSPC.

Copy link
Member

@joscollin joscollin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mirroring seems working, but this branch shows the below error with all fs snapshot mirror commands. Please check.

2025-03-26T15:05:09.871+0530 7f76df6006c0 -1 asok(0x7f76d8000ba0) AdminSocketConfigObs::init: failed: AdminSocket::bind_and_listen: The UNIX domain socket path /home/jcollin/workspace/ceph/.worktrees/wip-integrate-blockdiff-with-mirror-daemon/build/asok/client.admin.73732.asok is too long! The maximum length on this system is 107

@vshankar
Copy link
Contributor Author

The mirroring seems working, but this branch shows the below error with all fs snapshot mirror commands. Please check.

This is think due to the branch name being too long and the other paths just added to it.

@vshankar vshankar force-pushed the wip-integrate-blockdiff-with-mirror-daemon branch from 8d066af to a381fb3 Compare March 27, 2025 05:26
@vshankar vshankar changed the title Wip integrate blockdiff with mirror daemon cephfs-mirror: integrate blockdiff with mirror daemon Mar 27, 2025
@vshankar vshankar requested a review from a team March 27, 2025 05:52
@vshankar
Copy link
Contributor Author

This PR is under test in https://tracker.ceph.com/issues/70685.

@vshankar
Copy link
Contributor Author

vshankar commented Apr 7, 2025

Thanks for the review @joscollin. I will have a look asap.

@vshankar
Copy link
Contributor Author

vshankar commented May 6, 2025

jenkins retest this please

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

jenkins retest this please

@joscollin
Copy link
Member

joscollin commented May 7, 2025

Latest test run results: https://pulpito.ceph.com/vshankar-2025-05-06_14:13:12-fs-wip-vshankar-testing-20250506.112544-debug-testing-default-smithi/

@vshankar
Why test_cephfs_mirror_stats passed in one of the runs? You could've include #63131.

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

Latest test run results: https://pulpito.ceph.com/vshankar-2025-05-06_14:13:12-fs-wip-vshankar-testing-20250506.112544-debug-testing-default-smithi/

@vshankar Why test_cephfs_mirror_stats passed in one of the runs? You could've include #63131.

Because it's a racy test IMO. Also, #63131 isn't reviewed yet, so why to include in this test run?

@joscollin
Copy link
Member

Latest test run results: https://pulpito.ceph.com/vshankar-2025-05-06_14:13:12-fs-wip-vshankar-testing-20250506.112544-debug-testing-default-smithi/

@vshankar Why test_cephfs_mirror_stats passed in one of the runs? You could've include #63131.

Because it's a racy test IMO. Also, #63131 isn't reviewed yet, so why to include in this test run?

ok, so sometimes it passes too :)

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

jenkins test make check arm64

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

jenkins test make check

@vshankar
Copy link
Contributor Author

vshankar commented May 7, 2025

jenkins test make check arm64

@cbodley cbodley removed the request for review from a team May 7, 2025 15:09
joscollin and others added 6 commits May 9, 2025 03:07
This avoids considering latest changes from the source filesystem for
the mirroring of already existing snapshots. Thus the destination
filesystem and snapshots would be created based only on the source snapshots.
The destination fs would be a replica of the last snapshot taken.

Fixes: https://tracker.ceph.com/issues/68567
Signed-off-by: Jos Collin <jcollin@redhat.com>
Fixes: https://tracker.ceph.com/issues/69671
Signed-off-by: Jos Collin <jcollin@redhat.com>
Signed-off-by: Venky Shankar <vshankar@redhat.com>
As a debug aid when the snapdiff request is erroring out.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
Signed-off-by: Venky Shankar <vshankar@redhat.com>
@vshankar vshankar force-pushed the wip-integrate-blockdiff-with-mirror-daemon branch from 24adf97 to ab566d5 Compare May 8, 2025 21:37
@vshankar
Copy link
Contributor Author

jenkins test api

@vshankar
Copy link
Contributor Author

jenkins test windows

@vshankar
Copy link
Contributor Author

@vshankar vshankar merged commit 53e3248 into ceph:main May 12, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cephfs Ceph File System tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants