Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
19.87 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1938
  +user: Proxies\__CG__\App\Entity\User {#1941 …}
  +entry: App\Entity\Entry {#1869 …}
  +magazine: App\Entity\Magazine {#308
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#321
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#295 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#291 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +entries: Doctrine\ORM\PersistentCollection {#238 …}
    +posts: Doctrine\ORM\PersistentCollection {#196 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#258 …}
    +bans: Doctrine\ORM\PersistentCollection {#175 …}
    +reports: Doctrine\ORM\PersistentCollection {#161 …}
    +badges: Doctrine\ORM\PersistentCollection {#139 …}
    +logs: Doctrine\ORM\PersistentCollection {#129 …}
    +awards: Doctrine\ORM\PersistentCollection {#118 …}
    +categories: Doctrine\ORM\PersistentCollection {#105 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#324
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#320
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Are you buying the hardware for this setup, or do you already have it laying around? If you don’t have the hardware yet I’d recommend not using external USB drives in any way possible, as speed and reliability will be hindered.\n
    \n
    If you already have the hardware and want to use it I’m not super confident on recommending anything given my inexperience with this sort of setup, but I would probably try to use ZFS to minimize any potential read/write issues with dodgy USB connections. ZFS checksums files several times in transit, and will automatically repair and maintain them even if the drive gives you the wrong data. ZFS will probably be cranky when used with USB drives but it should still be possible. If you’re already planning on a RAID6 you could use a RAIDZ2 for a roughly equivalent ZFS option, or a double mirror layout for increased speed and IOPS. A RAIDZ2 is probably more resistant against disk failures since you can lose any 2 disks without pool failure, whereas with a double mirror the wrong 2 disks failing can cause a pool failure. The traditional gripe about RAIDZ’s longer rebuild times being vulnerable periods of failure are not relevant when your disks are only 2TB. Note you’ll likely want to limit ZFS’s ARC size if you’re pressed for memory on the Orange Pi, as it will try to use a lot of your memory to improve I/O efficiency by default. It should automatically release this memory if anything else needs it but it’s not always perfect.\n
    \n
    Another option you may consider is SnapRAID+MergerFS, which can be built in a pseudo-RAID5 or RAID6 fashion with 1 or 2 parity drives, but parity calculation is not real time and you have to explicitly schedule parity syncs (aka if a data disk fails, anything changed before your last sync will be vulnerable). You can use any filesystems you want underneath this setup, so XFS/Ext4/BTRFS are all viable options. This sort of setup doesn’t have ZFS’s licensing baggage and might be easier to set up on an Orange Pi, depending on what distro you’re running. One small benefit of this setup is that you can pull the disks at any time and files will be intact (there is no striping). If a catastrophic pool failure happens, your remaining disks will still have readable data for the files that they are responsible for.\n
    \n
    In terms of performance: ZFS double mirror > ZFS RAIDZ2 > SnapRAID+MergerFS (only runs at the speed of the disk that has the file).\n
    \n
    In terms of stability: ZFS RAIDZ2 >= ZFS double mirror > SnapRAID+MergerFS (lacks obsessive checksumming and parity is not realtime).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1695751286 {#2445
    date: 2023-09-26 20:01:26.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@PigeonCatcher@l.antiope.link"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1942 …}
  +nested: Doctrine\ORM\PersistentCollection {#1927 …}
  +votes: Doctrine\ORM\PersistentCollection {#1400 …}
  +reports: Doctrine\ORM\PersistentCollection {#1366 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2451 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2355 …}
  -id: 29808
  -bodyTs: "'1':290 '2':171,183,292 '2tb':213 'aka':310 'alreadi':12,46,131 'alway':267 'anoth':269 'anyth':62,259,316 'arc':223 'around':16 'automat':98,254 'baggag':351 'benefit':372 'built':280 'buy':3 'calcul':297 'catastroph':397 'caus':187 'chang':317 'checksum':90,453 'confid':59 'connect':88 'consid':273 'could':137 'cranki':116 'd':26 'data':111,313,408 'default':251 'depend':363 'disk':164,172,184,210,314,382,403,435 'distro':366 'dodgi':86 'doesn':345 'doubl':149,179,422,447 'drive':32,106,121,294 'easier':355 'effici':249 'els':260 'equival':144 'even':103 'explicit':306 'extern':30 'fail':185,315 'failur':165,175,190,204,399 'fashion':288 'file':91,387,411,439 'filesystem':329 'give':107 'given':63 'gripe':193 'happen':400 'hardwar':5,23,49 'hinder':43 'i/o':248 'improv':247 'increas':153 'inexperi':65 'intact':390 'iop':156 'issu':84 'lack':451 'last':320 'lay':15 'layout':151 'licens':350 'like':217 'limit':220 'll':216 'longer':197 'lose':169 'lot':242 'm':56 'maintain':101 'may':272 'memori':230,245,257 'mergerf':276,427,450 'might':353 'minim':80 'mirror':150,180,423,448 'need':261 'note':214 'obsess':452 'one':370 'option':146,270,340 'orang':233,361 'pariti':293,296,308,455 'perfect':268 'perform':420 'period':202 'pi':234,362 'plan':132 'pool':174,189,398 'possibl':36,127 'potenti':82 'press':228 'probabl':74,114,160 'pseudo':284 'pseudo-raid5':283 'pull':380 'raid5':285 'raid6':135,287 'raidz':195 'raidz2':140,158,425,445 're':130,227,368 'read/write':83 'readabl':407 'real':300 'realtim':458 'rebuild':198 'recommend':27,61 'releas':255 'relev':207 'reliabl':40 'remain':402 'repair':99 'resist':162 'respons':415 'rough':143 'run':369,429 'schedul':307 'set':357 'setup':8,70,334,344,375 'sever':92 'sinc':166 'size':224 'small':371 'snapraid':275,426,449 'sort':68,342 'speed':38,154,432 'stabil':443 'still':125,405 'stripe':394 'super':58 'sync':309,321 'term':418,441 'time':93,199,301,385 'tradit':192 'transit':95 'tri':75,238 'underneath':332 'usb':31,87,120 'use':29,53,77,118,138,240,327 'viabl':339 'vulner':201,324 'want':51,218,331 'way':35 'wherea':176 'without':173 'would':73 'wrong':110,182 'xfs/ext4/btrfs':336 'yet':24 'zfs':78,89,112,145,221,348,421,424,444,446"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/2639748"
  +editedAt: null
  +createdAt: DateTimeImmutable @1695522753 {#1890
    date: 2023-09-24 04:32:33.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1938
  +user: Proxies\__CG__\App\Entity\User {#1941 …}
  +entry: App\Entity\Entry {#1869 …}
  +magazine: App\Entity\Magazine {#308
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#321
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#295 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#291 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +entries: Doctrine\ORM\PersistentCollection {#238 …}
    +posts: Doctrine\ORM\PersistentCollection {#196 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#258 …}
    +bans: Doctrine\ORM\PersistentCollection {#175 …}
    +reports: Doctrine\ORM\PersistentCollection {#161 …}
    +badges: Doctrine\ORM\PersistentCollection {#139 …}
    +logs: Doctrine\ORM\PersistentCollection {#129 …}
    +awards: Doctrine\ORM\PersistentCollection {#118 …}
    +categories: Doctrine\ORM\PersistentCollection {#105 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#324
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#320
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Are you buying the hardware for this setup, or do you already have it laying around? If you don’t have the hardware yet I’d recommend not using external USB drives in any way possible, as speed and reliability will be hindered.\n
    \n
    If you already have the hardware and want to use it I’m not super confident on recommending anything given my inexperience with this sort of setup, but I would probably try to use ZFS to minimize any potential read/write issues with dodgy USB connections. ZFS checksums files several times in transit, and will automatically repair and maintain them even if the drive gives you the wrong data. ZFS will probably be cranky when used with USB drives but it should still be possible. If you’re already planning on a RAID6 you could use a RAIDZ2 for a roughly equivalent ZFS option, or a double mirror layout for increased speed and IOPS. A RAIDZ2 is probably more resistant against disk failures since you can lose any 2 disks without pool failure, whereas with a double mirror the wrong 2 disks failing can cause a pool failure. The traditional gripe about RAIDZ’s longer rebuild times being vulnerable periods of failure are not relevant when your disks are only 2TB. Note you’ll likely want to limit ZFS’s ARC size if you’re pressed for memory on the Orange Pi, as it will try to use a lot of your memory to improve I/O efficiency by default. It should automatically release this memory if anything else needs it but it’s not always perfect.\n
    \n
    Another option you may consider is SnapRAID+MergerFS, which can be built in a pseudo-RAID5 or RAID6 fashion with 1 or 2 parity drives, but parity calculation is not real time and you have to explicitly schedule parity syncs (aka if a data disk fails, anything changed before your last sync will be vulnerable). You can use any filesystems you want underneath this setup, so XFS/Ext4/BTRFS are all viable options. This sort of setup doesn’t have ZFS’s licensing baggage and might be easier to set up on an Orange Pi, depending on what distro you’re running. One small benefit of this setup is that you can pull the disks at any time and files will be intact (there is no striping). If a catastrophic pool failure happens, your remaining disks will still have readable data for the files that they are responsible for.\n
    \n
    In terms of performance: ZFS double mirror > ZFS RAIDZ2 > SnapRAID+MergerFS (only runs at the speed of the disk that has the file).\n
    \n
    In terms of stability: ZFS RAIDZ2 >= ZFS double mirror > SnapRAID+MergerFS (lacks obsessive checksumming and parity is not realtime).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1695751286 {#2445
    date: 2023-09-26 20:01:26.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@PigeonCatcher@l.antiope.link"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1942 …}
  +nested: Doctrine\ORM\PersistentCollection {#1927 …}
  +votes: Doctrine\ORM\PersistentCollection {#1400 …}
  +reports: Doctrine\ORM\PersistentCollection {#1366 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2451 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2355 …}
  -id: 29808
  -bodyTs: "'1':290 '2':171,183,292 '2tb':213 'aka':310 'alreadi':12,46,131 'alway':267 'anoth':269 'anyth':62,259,316 'arc':223 'around':16 'automat':98,254 'baggag':351 'benefit':372 'built':280 'buy':3 'calcul':297 'catastroph':397 'caus':187 'chang':317 'checksum':90,453 'confid':59 'connect':88 'consid':273 'could':137 'cranki':116 'd':26 'data':111,313,408 'default':251 'depend':363 'disk':164,172,184,210,314,382,403,435 'distro':366 'dodgi':86 'doesn':345 'doubl':149,179,422,447 'drive':32,106,121,294 'easier':355 'effici':249 'els':260 'equival':144 'even':103 'explicit':306 'extern':30 'fail':185,315 'failur':165,175,190,204,399 'fashion':288 'file':91,387,411,439 'filesystem':329 'give':107 'given':63 'gripe':193 'happen':400 'hardwar':5,23,49 'hinder':43 'i/o':248 'improv':247 'increas':153 'inexperi':65 'intact':390 'iop':156 'issu':84 'lack':451 'last':320 'lay':15 'layout':151 'licens':350 'like':217 'limit':220 'll':216 'longer':197 'lose':169 'lot':242 'm':56 'maintain':101 'may':272 'memori':230,245,257 'mergerf':276,427,450 'might':353 'minim':80 'mirror':150,180,423,448 'need':261 'note':214 'obsess':452 'one':370 'option':146,270,340 'orang':233,361 'pariti':293,296,308,455 'perfect':268 'perform':420 'period':202 'pi':234,362 'plan':132 'pool':174,189,398 'possibl':36,127 'potenti':82 'press':228 'probabl':74,114,160 'pseudo':284 'pseudo-raid5':283 'pull':380 'raid5':285 'raid6':135,287 'raidz':195 'raidz2':140,158,425,445 're':130,227,368 'read/write':83 'readabl':407 'real':300 'realtim':458 'rebuild':198 'recommend':27,61 'releas':255 'relev':207 'reliabl':40 'remain':402 'repair':99 'resist':162 'respons':415 'rough':143 'run':369,429 'schedul':307 'set':357 'setup':8,70,334,344,375 'sever':92 'sinc':166 'size':224 'small':371 'snapraid':275,426,449 'sort':68,342 'speed':38,154,432 'stabil':443 'still':125,405 'stripe':394 'super':58 'sync':309,321 'term':418,441 'time':93,199,301,385 'tradit':192 'transit':95 'tri':75,238 'underneath':332 'usb':31,87,120 'use':29,53,77,118,138,240,327 'viabl':339 'vulner':201,324 'want':51,218,331 'way':35 'wherea':176 'without':173 'would':73 'wrong':110,182 'xfs/ext4/btrfs':336 'yet':24 'zfs':78,89,112,145,221,348,421,424,444,446"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/2639748"
  +editedAt: null
  +createdAt: DateTimeImmutable @1695522753 {#1890
    date: 2023-09-24 04:32:33.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1938
  +user: Proxies\__CG__\App\Entity\User {#1941 …}
  +entry: App\Entity\Entry {#1869 …}
  +magazine: App\Entity\Magazine {#308
    +icon: null
    +name: "datahoarder@lemmy.ml"
    +title: "datahoarder"
    +description: """
      **Who are we?**\n
      \n
      We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
      \n
      We are one. We are legion. And we’re trying really hard not to forget.\n
      \n
      – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 58
    +entryCommentCount: 311
    +postCount: 1
    +postCommentCount: 1
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729502222 {#321
      date: 2024-10-21 11:17:02.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#295 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#291 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +entries: Doctrine\ORM\PersistentCollection {#238 …}
    +posts: Doctrine\ORM\PersistentCollection {#196 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#258 …}
    +bans: Doctrine\ORM\PersistentCollection {#175 …}
    +reports: Doctrine\ORM\PersistentCollection {#161 …}
    +badges: Doctrine\ORM\PersistentCollection {#139 …}
    +logs: Doctrine\ORM\PersistentCollection {#129 …}
    +awards: Doctrine\ORM\PersistentCollection {#118 …}
    +categories: Doctrine\ORM\PersistentCollection {#105 …}
    -id: 32
    +apId: "datahoarder@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/datahoarder"
    +apPublicUrl: "https://lemmy.ml/c/datahoarder"
    +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "datahoarder"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729303437 {#324
      date: 2024-10-19 04:03:57.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1695727192 {#320
      date: 2023-09-26 13:19:52.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    Are you buying the hardware for this setup, or do you already have it laying around? If you don’t have the hardware yet I’d recommend not using external USB drives in any way possible, as speed and reliability will be hindered.\n
    \n
    If you already have the hardware and want to use it I’m not super confident on recommending anything given my inexperience with this sort of setup, but I would probably try to use ZFS to minimize any potential read/write issues with dodgy USB connections. ZFS checksums files several times in transit, and will automatically repair and maintain them even if the drive gives you the wrong data. ZFS will probably be cranky when used with USB drives but it should still be possible. If you’re already planning on a RAID6 you could use a RAIDZ2 for a roughly equivalent ZFS option, or a double mirror layout for increased speed and IOPS. A RAIDZ2 is probably more resistant against disk failures since you can lose any 2 disks without pool failure, whereas with a double mirror the wrong 2 disks failing can cause a pool failure. The traditional gripe about RAIDZ’s longer rebuild times being vulnerable periods of failure are not relevant when your disks are only 2TB. Note you’ll likely want to limit ZFS’s ARC size if you’re pressed for memory on the Orange Pi, as it will try to use a lot of your memory to improve I/O efficiency by default. It should automatically release this memory if anything else needs it but it’s not always perfect.\n
    \n
    Another option you may consider is SnapRAID+MergerFS, which can be built in a pseudo-RAID5 or RAID6 fashion with 1 or 2 parity drives, but parity calculation is not real time and you have to explicitly schedule parity syncs (aka if a data disk fails, anything changed before your last sync will be vulnerable). You can use any filesystems you want underneath this setup, so XFS/Ext4/BTRFS are all viable options. This sort of setup doesn’t have ZFS’s licensing baggage and might be easier to set up on an Orange Pi, depending on what distro you’re running. One small benefit of this setup is that you can pull the disks at any time and files will be intact (there is no striping). If a catastrophic pool failure happens, your remaining disks will still have readable data for the files that they are responsible for.\n
    \n
    In terms of performance: ZFS double mirror > ZFS RAIDZ2 > SnapRAID+MergerFS (only runs at the speed of the disk that has the file).\n
    \n
    In terms of stability: ZFS RAIDZ2 >= ZFS double mirror > SnapRAID+MergerFS (lacks obsessive checksumming and parity is not realtime).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1695751286 {#2445
    date: 2023-09-26 20:01:26.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@PigeonCatcher@l.antiope.link"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1942 …}
  +nested: Doctrine\ORM\PersistentCollection {#1927 …}
  +votes: Doctrine\ORM\PersistentCollection {#1400 …}
  +reports: Doctrine\ORM\PersistentCollection {#1366 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2451 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2355 …}
  -id: 29808
  -bodyTs: "'1':290 '2':171,183,292 '2tb':213 'aka':310 'alreadi':12,46,131 'alway':267 'anoth':269 'anyth':62,259,316 'arc':223 'around':16 'automat':98,254 'baggag':351 'benefit':372 'built':280 'buy':3 'calcul':297 'catastroph':397 'caus':187 'chang':317 'checksum':90,453 'confid':59 'connect':88 'consid':273 'could':137 'cranki':116 'd':26 'data':111,313,408 'default':251 'depend':363 'disk':164,172,184,210,314,382,403,435 'distro':366 'dodgi':86 'doesn':345 'doubl':149,179,422,447 'drive':32,106,121,294 'easier':355 'effici':249 'els':260 'equival':144 'even':103 'explicit':306 'extern':30 'fail':185,315 'failur':165,175,190,204,399 'fashion':288 'file':91,387,411,439 'filesystem':329 'give':107 'given':63 'gripe':193 'happen':400 'hardwar':5,23,49 'hinder':43 'i/o':248 'improv':247 'increas':153 'inexperi':65 'intact':390 'iop':156 'issu':84 'lack':451 'last':320 'lay':15 'layout':151 'licens':350 'like':217 'limit':220 'll':216 'longer':197 'lose':169 'lot':242 'm':56 'maintain':101 'may':272 'memori':230,245,257 'mergerf':276,427,450 'might':353 'minim':80 'mirror':150,180,423,448 'need':261 'note':214 'obsess':452 'one':370 'option':146,270,340 'orang':233,361 'pariti':293,296,308,455 'perfect':268 'perform':420 'period':202 'pi':234,362 'plan':132 'pool':174,189,398 'possibl':36,127 'potenti':82 'press':228 'probabl':74,114,160 'pseudo':284 'pseudo-raid5':283 'pull':380 'raid5':285 'raid6':135,287 'raidz':195 'raidz2':140,158,425,445 're':130,227,368 'read/write':83 'readabl':407 'real':300 'realtim':458 'rebuild':198 'recommend':27,61 'releas':255 'relev':207 'reliabl':40 'remain':402 'repair':99 'resist':162 'respons':415 'rough':143 'run':369,429 'schedul':307 'set':357 'setup':8,70,334,344,375 'sever':92 'sinc':166 'size':224 'small':371 'snapraid':275,426,449 'sort':68,342 'speed':38,154,432 'stabil':443 'still':125,405 'stripe':394 'super':58 'sync':309,321 'term':418,441 'time':93,199,301,385 'tradit':192 'transit':95 'tri':75,238 'underneath':332 'usb':31,87,120 'use':29,53,77,118,138,240,327 'viabl':339 'vulner':201,324 'want':51,218,331 'way':35 'wherea':176 'without':173 'would':73 'wrong':110,182 'xfs/ext4/btrfs':336 'yet':24 'zfs':78,89,112,145,221,348,421,424,444,446"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/2639748"
  +editedAt: null
  +createdAt: DateTimeImmutable @1695522753 {#1890
    date: 2023-09-24 04:32:33.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#308
  +icon: null
  +name: "datahoarder@lemmy.ml"
  +title: "datahoarder"
  +description: """
    **Who are we?**\n
    \n
    We are digital librarians. Among us are represented the various reasons to keep data – legal requirements, competitive requirements, uncertainty of permanence of cloud services, distaste for transmitting your data externally (e.g. government or corporate espionage), cultural and familial archivists, internet collapse preppers, and people who do it themselves so they’re sure it’s done right. Everyone has their reasons for curating the data they have decided to keep (either forever or For A Damn Long Time). Along the way we have sought out like-minded individuals to exchange strategies, war stories, and cautionary tales of failures.\n
    \n
    We are one. We are legion. And we’re trying really hard not to forget.\n
    \n
    – 5-4-3-2-1-bang from [this thread](https://web.archive.org/web/20221111153119/https://old.reddit.com/r/DataHoarder/comments/41tqt4/hi_guys_can_i_kindly_ask_for_an_eli5_of_this/cz53pi0/)
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 58
  +entryCommentCount: 311
  +postCount: 1
  +postCommentCount: 1
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729502222 {#321
    date: 2024-10-21 11:17:02.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#295 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#291 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#280 …}
  +entries: Doctrine\ORM\PersistentCollection {#238 …}
  +posts: Doctrine\ORM\PersistentCollection {#196 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#258 …}
  +bans: Doctrine\ORM\PersistentCollection {#175 …}
  +reports: Doctrine\ORM\PersistentCollection {#161 …}
  +badges: Doctrine\ORM\PersistentCollection {#139 …}
  +logs: Doctrine\ORM\PersistentCollection {#129 …}
  +awards: Doctrine\ORM\PersistentCollection {#118 …}
  +categories: Doctrine\ORM\PersistentCollection {#105 …}
  -id: 32
  +apId: "datahoarder@lemmy.ml"
  +apProfileId: "https://lemmy.ml/c/datahoarder"
  +apPublicUrl: "https://lemmy.ml/c/datahoarder"
  +apFollowersUrl: "https://lemmy.ml/c/datahoarder/followers"
  +apInboxUrl: "https://lemmy.ml/inbox"
  +apDomain: "lemmy.ml"
  +apPreferredUsername: "datahoarder"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1729303437 {#324
    date: 2024-10-19 04:03:57.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1695727192 {#320
    date: 2023-09-26 13:19:52.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details